From 5e5bc1a9e38616335ea2fe837f22f82266f70ed5 Mon Sep 17 00:00:00 2001 From: Sy Date: Sat, 27 Jun 2020 02:07:13 +0200 Subject: [PATCH] =?UTF-8?q?Effective=20management=20of=20all=20values=20?= =?UTF-8?q?=E2=80=8B=E2=80=8Bof=20Z=20(lifting=20size)=20and=20all=20R=20(?= =?UTF-8?q?coding=20rate)=20for=20BG1=20&=20BG2=20|=20some=20improvement?= =?UTF-8?q?=20in=20decoding=20time=20|=20(bnProcPc=20reduces=202x)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h | 34 +- .../CODING/nrLDPC_decoder/nrLDPC_decoder.c | 3877 ++--------------- .../nrLDPC_decoder/nrLDPC_decoder.c.full | 534 --- .../PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h | 18 +- .../generator_bnProc/bnProcPc_gen_BG1_avx2.c | 146 +- .../generator_bnProc/bnProcPc_gen_BG2_avx2.c | 161 +- .../generator_bnProc/bnProc_gen_BG1_avx2.c | 141 +- .../generator_bnProc/bnProc_gen_BG1_avx2.c.1 | 1235 ++++++ .../generator_bnProc/bnProc_gen_BG2_avx2.c | 154 +- .../generator_bnProc/bnProc_gen_avx2 | Bin 617896 -> 279472 bytes .../nrLDPC_tools/generator_bnProc/main.c | 38 +- .../generator_bnProc/sauvegarde.tar.gz | Bin 9050 -> 9279 bytes .../generator_cnProc/cnProc_gen_BG1_avx2.c | 84 +- .../generator_cnProc/cnProc_gen_BG2_avx2.c | 56 +- .../generator_cnProc/cnProc_gen_avx2 | Bin 43488 -> 43424 bytes .../nrLDPC_tools/generator_cnProc/main.c | 25 +- .../generator_cnProc/sauvegarde.tar.gz | Bin 0 -> 4299 bytes .../generator_cnProc_avx512/Makefile | 2 +- .../cnProc_gen_BG1_avx512.c | 234 +- .../cnProc_gen_BG1_avx512.save1 | 603 +++ .../cnProc_gen_BG2_avx512.c | 52 +- .../generator_cnProc_avx512/cnProc_gen_avx512 | Bin 43368 -> 43352 bytes .../generator_cnProc_avx512/main.c | 23 +- .../generator_cnProc_avx512/sauvegarde.tar.gz | Bin 3870 -> 3958 bytes .../{ => save}/cnProc_gen_BG1_avx512.2 | 0 .../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 +++ ...13_AVX2.c => nrLDPC_bnProc_BG1_R13_AVX2.h} | 279 +- .../bnProc/nrLDPC_bnProc_BG1_R23_AVX2.h | 358 ++ .../bnProc/nrLDPC_bnProc_BG1_R89_AVX2.h | 146 + .../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_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_R13_AVX2.h | 508 +++ ...15_AVX2.c => nrLDPC_bnProc_BG2_R15_AVX2.h} | 281 +- .../bnProc/nrLDPC_bnProc_BG2_R23_AVX2.h | 198 + .../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_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 ----- ..._AVX2.c => nrLDPC_bnProcPc_BG1_R13_AVX2.h} | 44 +- .../bnProcPc/nrLDPC_bnProcPc_BG1_R23_AVX2.h | 306 ++ .../bnProcPc/nrLDPC_bnProcPc_BG1_R89_AVX2.h | 157 + .../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_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_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 ---- ..._AVX2.c => nrLDPC_bnProcPc_BG2_R13_AVX2.h} | 757 +--- ..._AVX2.c => nrLDPC_bnProcPc_BG2_R15_AVX2.h} | 46 +- .../bnProcPc/nrLDPC_bnProcPc_BG2_R23_AVX2.h | 192 + .../bnProcPc/nrLDPC_bnProcPc_BG2_R89_AVX2.h | 192 + .../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 ---- ...13_AVX2.c => nrLDPC_cnProc_BG1_R13_AVX2.c} | 156 +- ...13_AVX2.c => nrLDPC_cnProc_BG1_R13_AVX2.h} | 178 +- ...13_AVX2.c => nrLDPC_cnProc_BG1_R23_AVX2.c} | 369 +- ...13_AVX2.c => nrLDPC_cnProc_BG1_R23_AVX2.h} | 391 +- ...13_AVX2.c => nrLDPC_cnProc_BG1_R89_AVX2.c} | 1213 +----- .../cnProc/nrLDPC_cnProc_BG1_R89_AVX2.h | 1151 +++++ .../cnProc/nrLDPC_cnProc_BG1_Z112_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z11_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z120_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z128_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z144_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z14_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z15_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z160_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z16_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z176_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z18_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z192_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z208_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z20_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z224_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z22_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z240_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z24_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z256_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z26_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z288_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z28_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z30_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z320_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z32_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z352_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z36_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z384_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z3_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z40_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z44_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z48_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z4_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z52_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z56_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z5_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z60_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z64_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z6_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z72_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z7_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z80_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z88_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z8_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z96_R13_AVX2.c | 2334 ---------- .../cnProc/nrLDPC_cnProc_BG1_Z9_R13_AVX2.c | 2334 ---------- ...15_AVX2.c => nrLDPC_cnProc_BG2_R13_AVX2.c} | 130 +- ...15_AVX2.c => nrLDPC_cnProc_BG2_R13_AVX2.h} | 128 +- ...15_AVX2.c => nrLDPC_cnProc_BG2_R15_AVX2.c} | 83 +- ...15_AVX2.c => nrLDPC_cnProc_BG2_R15_AVX2.h} | 96 +- ...15_AVX2.c => nrLDPC_cnProc_BG2_R23_AVX2.c} | 199 +- .../cnProc/nrLDPC_cnProc_BG2_R23_AVX2.h | 694 +++ .../cnProc/nrLDPC_cnProc_BG2_Z10_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z112_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z11_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z120_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z128_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z12_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z13_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z144_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z14_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z15_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z160_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z16_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z176_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z18_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z192_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z208_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z20_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z224_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z22_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z240_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z24_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z256_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z26_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z288_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z28_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z30_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z320_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z32_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z352_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z36_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z384_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z40_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z44_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z48_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z52_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z56_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z60_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z64_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z6_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z72_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z7_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z80_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z88_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z8_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z96_R15_AVX2.c | 823 ---- .../cnProc/nrLDPC_cnProc_BG2_Z9_R15_AVX2.c | 823 ---- .../nrLDPC_cnProc_BG1_R13_AVX512.h} | 575 +-- .../nrLDPC_cnProc_BG1_R23_AVX512.h} | 698 ++- .../nrLDPC_cnProc_BG1_R89_AVX512.h | 1151 +++++ .../nrLDPC_cnProc_BG2_R13_AVX512.h} | 126 +- .../nrLDPC_cnProc_BG2_R15_AVX512.h} | 97 +- .../nrLDPC_cnProc_BG2_R23_AVX512.h} | 190 +- .../nrLDPC_cnProc_BG1_Z104_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z10_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z112_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z120_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z128_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z12_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z13_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z144_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z14_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z15_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z160_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z16_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z176_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z18_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z192_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z208_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z20_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z224_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z22_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z240_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z24_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z256_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z26_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z288_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z28_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z30_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z320_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z32_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z352_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z36_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z384_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z3_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z40_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z44_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z48_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z4_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z52_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z56_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z5_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z60_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z64_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z6_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z72_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z7_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z80_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z88_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z8_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z96_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG1_Z9_R13_AVX512.c | 2261 ---------- .../nrLDPC_cnProc_BG2_Z10_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z112_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z11_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z120_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z128_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z12_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z13_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z144_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z14_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z15_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z160_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z16_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z176_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z18_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z192_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z208_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z20_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z224_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z22_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z240_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z24_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z256_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z26_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z288_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z28_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z30_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z320_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z32_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z352_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z36_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z384_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z40_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z44_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z48_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z4_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z52_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z56_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z5_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z60_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z64_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z6_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z72_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z7_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z80_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z88_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z8_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z96_R15_AVX512.c | 785 ---- .../nrLDPC_cnProc_BG2_Z9_R15_AVX512.c | 785 ---- 448 files changed, 12031 insertions(+), 475556 deletions(-) delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c.full create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c.1 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/sauvegarde.tar.gz create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save1 rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/{ => save}/cnProc_gen_BG1_avx512.2 (100%) create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c.today create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.native create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.unrolled rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/{nrLDPC_bnProc_BG1_Z2_R13_AVX2.c => nrLDPC_bnProc_BG1_R13_AVX2.h} (86%) create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R23_AVX2.h create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R89_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z104_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R13_AVX2.h rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/{nrLDPC_bnProc_BG2_Z2_R15_AVX2.c => nrLDPC_bnProc_BG2_R15_AVX2.h} (86%) create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R23_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z104_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/{nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c => nrLDPC_bnProcPc_BG1_R13_AVX2.h} (97%) create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R23_AVX2.h create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R89_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z104_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/{nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c => nrLDPC_bnProcPc_BG2_R13_AVX2.h} (51%) rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/{nrLDPC_bnProcPc_BG2_Z104_R15_AVX2.c => nrLDPC_bnProcPc_BG2_R15_AVX2.h} (97%) create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R23_AVX2.h create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R89_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z10_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/{nrLDPC_cnProc_BG1_Z104_R13_AVX2.c => nrLDPC_cnProc_BG1_R13_AVX2.c} (97%) rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/{nrLDPC_cnProc_BG1_Z12_R13_AVX2.c => nrLDPC_cnProc_BG1_R13_AVX2.h} (96%) rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/{nrLDPC_cnProc_BG1_Z10_R13_AVX2.c => nrLDPC_cnProc_BG1_R23_AVX2.c} (88%) rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/{nrLDPC_cnProc_BG1_Z2_R13_AVX2.c => nrLDPC_cnProc_BG1_R23_AVX2.h} (87%) rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/{nrLDPC_cnProc_BG1_Z13_R13_AVX2.c => nrLDPC_cnProc_BG1_R89_AVX2.c} (50%) create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R89_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z112_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z11_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z120_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z128_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z144_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z14_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z15_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z160_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z16_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z176_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z18_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z192_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z208_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z20_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z224_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z22_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z240_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z24_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z256_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z26_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z288_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z28_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z30_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z320_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z32_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z352_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z36_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z384_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z3_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z40_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z44_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z48_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z4_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z52_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z56_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z5_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z60_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z64_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z6_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z72_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z7_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z80_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z88_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z8_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z96_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z9_R13_AVX2.c rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/{nrLDPC_cnProc_BG2_Z3_R15_AVX2.c => nrLDPC_cnProc_BG2_R13_AVX2.c} (90%) rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/{nrLDPC_cnProc_BG2_Z4_R15_AVX2.c => nrLDPC_cnProc_BG2_R13_AVX2.h} (90%) rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/{nrLDPC_cnProc_BG2_Z104_R15_AVX2.c => nrLDPC_cnProc_BG2_R15_AVX2.c} (96%) rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/{nrLDPC_cnProc_BG2_Z2_R15_AVX2.c => nrLDPC_cnProc_BG2_R15_AVX2.h} (94%) rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/{nrLDPC_cnProc_BG2_Z5_R15_AVX2.c => nrLDPC_cnProc_BG2_R23_AVX2.c} (81%) create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R23_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z10_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z112_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z11_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z120_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z128_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z12_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z13_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z144_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z14_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z15_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z160_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z16_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z176_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z18_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z192_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z208_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z20_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z224_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z22_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z240_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z24_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z256_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z26_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z288_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z28_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z30_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z320_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z32_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z352_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z36_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z384_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z40_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z44_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z48_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z52_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z56_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z60_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z64_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z6_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z72_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z7_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z80_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z88_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z8_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z96_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z9_R15_AVX2.c rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/{nrLDPC_cnProc_BG1_Z11_R13_AVX512.c => cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h} (89%) rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/{nrLDPC_cnProc_BG1_Z2_R13_AVX512.c => cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.h} (82%) create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.h rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/{nrLDPC_cnProc_BG2_Z2_R15_AVX512.c => cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.h} (90%) rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/{nrLDPC_cnProc_BG2_Z104_R15_AVX512.c => cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.h} (95%) rename openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/{nrLDPC_cnProc_BG2_Z3_R15_AVX512.c => cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.h} (82%) delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z104_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z10_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z112_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z120_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z128_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z12_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z13_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z144_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z14_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z15_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z160_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z16_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z176_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z18_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z192_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z208_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z20_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z224_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z22_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z240_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z24_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z256_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z26_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z288_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z28_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z30_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z320_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z32_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z352_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z36_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z384_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z3_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z40_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z44_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z48_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z4_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z52_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z56_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z5_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z60_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z64_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z6_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z72_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z7_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z80_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z88_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z8_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z96_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z9_R13_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z10_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z112_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z11_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z120_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z128_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z12_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z13_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z144_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z14_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z15_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z160_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z16_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z176_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z18_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z192_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z208_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z20_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z224_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z22_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z240_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z24_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z256_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z26_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z288_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z28_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z30_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z320_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z32_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z352_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z36_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z384_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z40_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z44_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z48_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z4_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z52_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z56_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z5_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z60_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z64_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z6_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z72_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z7_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z80_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z88_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z8_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z96_R15_AVX512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z9_R15_AVX512.c diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h index 379fc14056..75469ed1f0 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h @@ -61,9 +61,9 @@ static inline void nrLDPC_cnProc_BG2_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBu // Offset to each bit within a group in terms of 32 Byte uint32_t bitOffsetInGroup; - __m512i zmm0, min, sgn, zeros,maxLLR; + __m512i zmm0, min, sgn, zeros; zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); +// maxLLR = _mm512_set1_epi8((char)127); __m512i* p_cnProcBufResBit; const __m512i* p_ones = (__m512i*) ones512_epi8; @@ -95,8 +95,8 @@ static inline void nrLDPC_cnProc_BG2_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBu // Set of results pointer to correct BN address p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - __m512i *pj0 = &p_cnProcBuf[lut_idxCnProcG3[j][0]/2]; - __m512i *pj1 = &p_cnProcBuf[lut_idxCnProcG3[j][1]/2]; + __m512i *pj0 = &p_cnProcBuf[(lut_idxCnProcG3[j][0]/2)]; + __m512i *pj1 = &p_cnProcBuf[(lut_idxCnProcG3[j][1]/2)]; // Loop over CNs for (i=0; iAVX512 / +/*---------------------------------------------------------------------- +| cn processing files -->AVX512 /----------------------------------------------------------------------*/ //BG1------------------------------------------------------------------- #ifdef __AVX512BW__ -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z384_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z352_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z320_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z288_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z256_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z240_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z224_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z208_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z192_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z176_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z160_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z144_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z128_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z120_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z112_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z104_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z96_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z88_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z80_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z72_R13_AVX512.c" +#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h" +#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.h" +#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.h" +//BG2------------------------------------------------------------------- +#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.h" +#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.h" +#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z64_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z60_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z56_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z52_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z48_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z44_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z40_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z36_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z32_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z30_R13_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z28_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z26_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z24_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z22_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z20_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z18_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z16_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z15_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z14_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z13_R13_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z12_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z11_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z10_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z9_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z8_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z7_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z6_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z5_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z4_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z3_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z2_R13_AVX512.c" - -//BG2------------------------------------------------------------------ -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z384_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z352_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z320_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z288_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z256_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z240_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z224_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z208_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z192_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z176_R15_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z160_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z144_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z128_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z120_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z112_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z104_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z96_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z88_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z80_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z72_R15_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z64_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z60_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z56_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z52_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z48_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z44_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z40_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z36_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z32_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z30_R15_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z28_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z26_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z24_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z22_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z20_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z18_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z16_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z15_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z14_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z13_R15_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z12_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z11_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z10_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z9_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z8_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z7_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z6_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z5_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z4_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z3_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z2_R15_AVX512.c" #else - /*----------------------------------------------------------------------/ - / cn Processing files -->AVX2 / +/*---------------------------------------------------------------------- +| cn Processing files -->AVX2 /----------------------------------------------------------------------*/ //BG1------------------------------------------------------------------ -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z384_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z352_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z320_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z288_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z256_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z240_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z224_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z208_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z192_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z176_R13_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z160_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z144_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z128_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z120_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z112_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z104_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z96_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z88_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z80_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z72_R13_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z64_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z60_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z56_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z52_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z48_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z44_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z40_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z36_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z32_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z30_R13_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z28_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z26_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z24_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z22_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z20_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z18_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z16_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z15_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z14_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z13_R13_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z12_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z11_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z10_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z9_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z8_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z7_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z6_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z5_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z4_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z3_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z2_R13_AVX2.c" - +#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R23_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R89_AVX2.h" //BG2 -------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z384_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z352_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z320_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z288_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z256_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z240_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z224_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z208_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z192_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z176_R15_AVX2.c" +#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R15_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R23_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z160_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z144_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z128_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z120_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z112_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z104_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z96_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z88_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z80_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z72_R15_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z64_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z60_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z56_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z52_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z48_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z44_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z40_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z36_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z32_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z30_R15_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z28_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z26_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z24_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z22_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z20_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z18_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z16_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z15_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z14_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z13_R15_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z12_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z11_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z10_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z9_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z8_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z7_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z6_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z5_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z4_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z3_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z2_R15_AVX2.c" #endif -//Bn Processing files -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c" +/*---------------------------------------------------------------------- +| bn Processing files -->AVX2 +/----------------------------------------------------------------------*/ -///#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c" -//#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c" +//bnProcPc------------------------------------------------------------- +//BG1------------------------------------------------------------------ +#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R13_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R23_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R89_AVX2.h" +//BG2 -------------------------------------------------------------------- +#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R15_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R13_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R23_AVX2.h" + +//bnProc---------------------------------------------------------------- +//BG1------------------------------------------------------------------- +#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R13_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R23_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R89_AVX2.h" +//BG2 -------------------------------------------------------------------- +#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R15_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R13_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R23_AVX2.h" @@ -353,6 +134,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP { uint16_t Z = p_decParams->Z; uint8_t BG = p_decParams->BG; + uint8_t R = p_decParams->R; //Decoding rate: Format 15,13,... for code rates 1/5, 1/3,... */ uint8_t numMaxIter = p_decParams->numMaxIter; e_nrLDPC_outMode outMode = p_decParams->outMode; // int8_t* cnProcBuf= p_procBuf->cnProcBuf; @@ -420,1004 +202,77 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP #endif if (BG==1) { - switch (Z) + switch (R) { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z384_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z384_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z352_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z352_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z320_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z320_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z288_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z288_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z256_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z256_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z240_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z240_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z224_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z224_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z208_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z208_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z192_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z192_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z144_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z144_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z128_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z128_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z120_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z120_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z112_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z112_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z104_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z104_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z96_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z96_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z88_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z88_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z80_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z80_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z72_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z72_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z64_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z64_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z60_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z60_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z56_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z56_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z52_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z52_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z48_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z48_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z44_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z44_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z40_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z40_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z36_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z36_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z32_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z32_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z30_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z30_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z28_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z28_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z26_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z26_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z24_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z24_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z22_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z22_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z20_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z20_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z18_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z18_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z16_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z16_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z15_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z15_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z14_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z14_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 13: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z13_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG1_Z13_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG1_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 12: + case 23: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z12_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG1_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + //nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); #else - nrLDPC_cnProc_BG1_Z12_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG1_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 11: + case 89: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z11_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG1_R89_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG1_Z11_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG1_R89_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z10_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z10_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } + } - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z9_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z9_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z8_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z8_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z7_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z7_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z6_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z6_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z5_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z5_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z4_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z4_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z3_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z3_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z2_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z2_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } } } //end if else { - switch (Z) + switch (R) { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z384_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z384_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z352_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z352_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z320_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z320_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z288_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z288_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z256_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z256_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z240_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z240_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z224_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z224_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z208_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z208_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z192_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z192_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z144_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z144_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z128_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z128_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z120_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z120_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z112_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z112_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z104_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z104_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z96_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z96_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z88_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z88_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z80_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z80_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z72_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z72_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z64_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z64_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z60_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z60_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z56_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z56_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z52_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z52_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z48_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z48_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z44_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z44_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z40_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z40_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z36_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z36_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z32_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z32_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z30_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z30_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z28_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z28_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z26_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z26_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z24_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z24_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z22_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z22_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z20_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z20_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z18_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z18_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z16_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z16_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } case 15: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z15_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG2_R15_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG2_Z15_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG2_R15_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z14_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z14_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } + } case 13: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z13_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG2_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG2_Z13_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG2_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 12: + case 23: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z12_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG2_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG2_Z12_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG2_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 11: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z11_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z11_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z10_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z10_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z9_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z9_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z8_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z8_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z7_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z7_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z6_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z6_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z5_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z5_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z4_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z4_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z3_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z3_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z2_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z2_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } } - }//end of else + }//end of else #ifdef NR_LDPC_PROFILER_DETAIL stop_meas(&p_profiler->cnProc); #endif @@ -1451,120 +306,58 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP #ifdef NR_LDPC_PROFILER_DETAIL start_meas(&p_profiler->bnProcPc); #endif - if(BG==1){ - switch (Z) +//nrLDPC_bnProcPc(p_lut, p_procBuf, Z); + + if (BG==1) + { + switch (R) + { + case 13: { - case 384: - { - nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 256: - { - nrLDPC_bnProcPc_BG1_Z256_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 192: - { - nrLDPC_bnProcPc_BG1_Z192_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 128: - { - nrLDPC_bnProcPc_BG1_Z128_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 96: - { - nrLDPC_bnProcPc_BG1_Z96_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 64: - { - nrLDPC_bnProcPc_BG1_Z64_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 48: - { - nrLDPC_bnProcPc_BG1_Z48_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 32: - { - nrLDPC_bnProcPc_BG1_Z32_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - default : - { - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - break; - } - + nrLDPC_bnProcPc_BG1_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + case 23: + { + nrLDPC_bnProcPc_BG1_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + case 89: + { + nrLDPC_bnProcPc_BG1_R89_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; } } - else{ - switch (Z) + } //end if + else + { + switch (R) + { + case 15: { - case 384: - { - nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 256: - { - nrLDPC_bnProcPc_BG2_Z256_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 192: - { - nrLDPC_bnProcPc_BG2_Z192_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 128: - { - nrLDPC_bnProcPc_BG2_Z128_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 96: - { - nrLDPC_bnProcPc_BG2_Z96_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 64: - { - nrLDPC_bnProcPc_BG2_Z64_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 48: - { - nrLDPC_bnProcPc_BG2_Z48_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 32: - { - nrLDPC_bnProcPc_BG2_Z32_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - default : - { - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - break; - } - + nrLDPC_bnProcPc_BG2_R15_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; } + case 13: + + { + nrLDPC_bnProcPc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + + case 23: + + { + nrLDPC_bnProcPc_BG2_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + + } - + }//end of else + + #ifdef NR_LDPC_PROFILER_DETAIL stop_meas(&p_profiler->bnProcPc); #endif @@ -1578,6 +371,56 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP start_meas(&p_profiler->bnProc); #endif nrLDPC_bnProc(p_lut, p_procBuf, Z); + +/* +if (BG==1) + { + switch (R) + { + case 13: + { + nrLDPC_bnProc_BG1_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + case 23: + { + nrLDPC_bnProc_BG1_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + case 89: + { + nrLDPC_bnProc_BG1_R89_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + } + } //end if + else + { + switch (R) + { + case 15: + { + nrLDPC_bnProc_BG2_R15_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + case 13: + + { + nrLDPC_bnProc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + + case 23: + + { + nrLDPC_bnProc_BG2_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + + + } + }//end of else +*/ #ifdef NR_LDPC_PROFILER_DETAIL stop_meas(&p_profiler->bnProc); #endif @@ -1624,1004 +467,76 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP #endif if (BG==1) { - switch (Z) + switch (R) { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z384_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z384_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z352_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z352_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z320_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z320_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z288_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z288_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z256_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z256_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z240_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z240_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z224_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z224_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z208_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z208_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z192_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z192_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z144_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z144_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z128_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z128_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z120_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z120_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z112_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z112_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z104_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z104_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z96_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z96_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z88_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z88_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z80_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z80_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z72_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z72_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z64_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z64_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z60_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z60_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z56_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z56_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z52_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z52_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z48_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z48_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z44_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z44_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z40_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z40_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z36_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z36_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z32_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z32_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z30_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z30_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z28_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z28_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z26_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z26_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z24_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z24_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z22_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z22_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z20_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z20_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z18_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z18_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z16_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z16_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z15_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z15_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z14_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z14_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 13: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z13_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG1_Z13_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG1_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 12: + case 23: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z12_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG1_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG1_Z12_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG1_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 11: + case 89: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z11_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG1_R89_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG1_Z11_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG1_R89_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z10_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z10_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } + } - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z9_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z9_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z8_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z8_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z7_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z7_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z6_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z6_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z5_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z5_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z4_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z4_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z3_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z3_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z2_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z2_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } } } //end if else { - switch (Z) + switch (R) { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z384_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z384_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z352_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z352_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z320_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z320_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z288_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z288_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z256_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z256_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z240_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z240_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z224_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z224_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z208_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z208_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z192_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z192_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z144_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z144_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z128_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z128_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z120_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z120_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z112_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z112_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z104_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z104_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z96_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z96_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z88_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z88_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z80_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z80_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z72_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z72_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z64_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z64_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z60_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z60_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z56_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z56_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z52_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z52_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z48_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z48_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z44_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z44_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z40_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z40_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z36_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z36_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z32_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z32_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z30_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z30_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z28_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z28_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z26_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z26_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z24_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z24_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z22_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z22_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z20_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z20_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z18_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z18_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z16_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z16_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } case 15: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z15_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG2_R15_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG2_Z15_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG2_R15_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z14_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z14_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } + } case 13: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z13_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG2_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG2_Z13_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG2_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 12: + case 23: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z12_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG2_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG2_Z12_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG2_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 11: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z11_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z11_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z10_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z10_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z9_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z9_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z8_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z8_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z7_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z7_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z6_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z6_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z5_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z5_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z4_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z4_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z3_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z3_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z2_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z2_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } } - }//end of else + }//end of else #ifdef NR_LDPC_PROFILER_DETAIL stop_meas(&p_profiler->cnProc); #endif @@ -2654,120 +569,57 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP #ifdef NR_LDPC_PROFILER_DETAIL start_meas(&p_profiler->bnProcPc); #endif - if(BG==1){ - switch (Z) +//nrLDPC_bnProcPc(p_lut, p_procBuf, Z); + if (BG==1) + { + switch (R) + { + case 13: { - case 384: - { - nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 256: - { - nrLDPC_bnProcPc_BG1_Z256_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 192: - { - nrLDPC_bnProcPc_BG1_Z192_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 128: - { - nrLDPC_bnProcPc_BG1_Z128_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 96: - { - nrLDPC_bnProcPc_BG1_Z96_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 64: - { - nrLDPC_bnProcPc_BG1_Z64_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 48: - { - nrLDPC_bnProcPc_BG1_Z48_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 32: - { - nrLDPC_bnProcPc_BG1_Z32_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - default : - { - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - break; - } - + nrLDPC_bnProcPc_BG1_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + case 23: + { + nrLDPC_bnProcPc_BG1_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + case 89: + { + nrLDPC_bnProcPc_BG1_R89_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; } } - else{ - switch (Z) + } //end if + else + { + switch (R) + { + case 15: { - case 384: - { - nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 256: - { - nrLDPC_bnProcPc_BG2_Z256_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 192: - { - nrLDPC_bnProcPc_BG2_Z192_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 128: - { - nrLDPC_bnProcPc_BG2_Z128_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 96: - { - nrLDPC_bnProcPc_BG2_Z96_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 64: - { - nrLDPC_bnProcPc_BG2_Z64_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 48: - { - nrLDPC_bnProcPc_BG2_Z48_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 32: - { - nrLDPC_bnProcPc_BG2_Z32_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - default : - { - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - break; - } - + nrLDPC_bnProcPc_BG2_R15_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; } + case 13: + + { + nrLDPC_bnProcPc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + + case 23: + + { + nrLDPC_bnProcPc_BG2_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + + } - + }//end of else + + #ifdef NR_LDPC_PROFILER_DETAIL stop_meas(&p_profiler->bnProcPc); #endif @@ -2780,6 +632,58 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP start_meas(&p_profiler->bnProc); #endif nrLDPC_bnProc(p_lut, p_procBuf, Z); +/* +if (BG==1) + { + switch (R) + { + case 13: + { + nrLDPC_bnProc_BG1_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + case 23: + { + nrLDPC_bnProc_BG1_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + case 89: + { + nrLDPC_bnProc_BG1_R89_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + } + } //end if + else + { + switch (R) + { + case 15: + { + nrLDPC_bnProc_BG2_R15_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + case 13: + + { + nrLDPC_bnProc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + + case 23: + + { + nrLDPC_bnProc_BG2_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + + + } + }//end of else +*/ + + + #ifdef NR_LDPC_PROFILER_DETAIL stop_meas(&p_profiler->bnProc); #endif @@ -2839,1005 +743,77 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP #endif if (BG==1) { - switch (Z) + switch (R) { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z384_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z384_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z352_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z352_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z320_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z320_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z288_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z288_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z256_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z256_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z240_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z240_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z224_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z224_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z208_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z208_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z192_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z192_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z144_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z144_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z128_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z128_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z120_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z120_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z112_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z112_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z104_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z104_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z96_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z96_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z88_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z88_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z80_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z80_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z72_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z72_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z64_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z64_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z60_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z60_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z56_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z56_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z52_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z52_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z48_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z48_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z44_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z44_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z40_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z40_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z36_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z36_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z32_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z32_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z30_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z30_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z28_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z28_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z26_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z26_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z24_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z24_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z22_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z22_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z20_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z20_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z18_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z18_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z16_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z16_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z15_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z15_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z14_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z14_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 13: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z13_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG1_Z13_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG1_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 12: + case 23: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z12_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG1_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + //nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); #else - nrLDPC_cnProc_BG1_Z12_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG1_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 11: + case 89: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z11_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG1_R89_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG1_Z11_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG1_R89_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z10_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z10_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } + } - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z9_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z9_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z8_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z8_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z7_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z7_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z6_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z6_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z5_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z5_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z4_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z4_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z3_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z3_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z2_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z2_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } } } //end if else { - switch (Z) + switch (R) { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z384_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z384_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z352_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z352_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z320_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z320_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z288_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z288_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z256_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z256_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z240_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z240_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z224_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z224_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z208_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z208_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z192_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z192_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z144_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z144_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z128_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z128_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z120_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z120_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z112_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z112_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z104_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z104_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z96_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z96_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z88_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z88_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z80_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z80_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z72_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z72_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z64_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z64_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z60_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z60_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z56_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z56_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z52_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z52_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z48_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z48_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z44_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z44_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z40_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z40_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z36_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z36_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z32_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z32_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z30_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z30_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z28_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z28_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z26_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z26_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z24_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z24_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z22_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z22_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z20_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z20_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z18_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z18_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z16_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z16_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } case 15: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z15_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG2_R15_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG2_Z15_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG2_R15_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z14_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z14_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } + } case 13: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z13_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG2_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG2_Z13_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG2_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 12: + case 23: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z12_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG2_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG2_Z12_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG2_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 11: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z11_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z11_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z10_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z10_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z9_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z9_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z8_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z8_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z7_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z7_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z6_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z6_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z5_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z5_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z4_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z4_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z3_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z3_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z2_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z2_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } } - }//end of else - + }//end of else #ifdef NR_LDPC_PROFILER_DETAIL stop_meas(&p_profiler->cnProc); #endif @@ -3870,7 +846,57 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP #ifdef NR_LDPC_PROFILER_DETAIL start_meas(&p_profiler->bnProcPc); #endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); + //nrLDPC_bnProcPc(p_lut, p_procBuf, Z); + + if (BG==1) + { + switch (R) + { + case 13: + { + nrLDPC_bnProcPc_BG1_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + case 23: + { + nrLDPC_bnProcPc_BG1_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + case 89: + { + nrLDPC_bnProcPc_BG1_R89_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + } + } //end if + else + { + switch (R) + { + case 15: + { + nrLDPC_bnProcPc_BG2_R15_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + case 13: + + { + nrLDPC_bnProcPc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + + case 23: + + { + nrLDPC_bnProcPc_BG2_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + + + } + }//end of else + + #ifdef NR_LDPC_PROFILER_DETAIL stop_meas(&p_profiler->bnProcPc); #endif @@ -3886,120 +912,58 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP start_meas(&p_profiler->bnProc); #endif - if(BG==1){ +nrLDPC_bnProc(p_lut, p_procBuf, Z); - switch (Z) +/* +if (BG==1) + { + switch (R) + { + case 13: { - case 384: - { - nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 256: - { - nrLDPC_bnProcPc_BG1_Z256_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 192: - { - nrLDPC_bnProcPc_BG1_Z192_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 128: - { - nrLDPC_bnProcPc_BG1_Z128_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 96: - { - nrLDPC_bnProcPc_BG1_Z96_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 64: - { - nrLDPC_bnProcPc_BG1_Z64_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 48: - { - nrLDPC_bnProcPc_BG1_Z48_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 32: - { - nrLDPC_bnProcPc_BG1_Z32_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - default : - { - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - break; - } - + nrLDPC_bnProc_BG1_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + case 23: + { + nrLDPC_bnProc_BG1_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + case 89: + { + nrLDPC_bnProc_BG1_R89_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; } } - else{ - switch (Z) + } //end if + else + { + switch (R) + { + case 15: { - case 384: - { - nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 256: - { - nrLDPC_bnProcPc_BG2_Z256_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 192: - { - nrLDPC_bnProcPc_BG2_Z192_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 128: - { - nrLDPC_bnProcPc_BG2_Z128_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 96: - { - nrLDPC_bnProcPc_BG2_Z96_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 64: - { - nrLDPC_bnProcPc_BG2_Z64_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 48: - { - nrLDPC_bnProcPc_BG2_Z48_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 32: - { - nrLDPC_bnProcPc_BG2_Z32_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - default : - { - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - break; - } - + nrLDPC_bnProc_BG2_R15_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; } + case 13: + + { + nrLDPC_bnProc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + + case 23: + + { + nrLDPC_bnProc_BG2_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + + } - + } +*/ + #ifdef NR_LDPC_PROFILER_DETAIL stop_meas(&p_profiler->bnProc); @@ -4089,4 +1053,3 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP - diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c.full b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c.full deleted file mode 100644 index 34bfdc2fb3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c.full +++ /dev/null @@ -1,534 +0,0 @@ - -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_decoder.c - * \brief Defines the LDPC decoder - * \author Sebastian Wagner (TCL Communications) Email: - * \date 30-09-2019 - * \version 2.0 - * \note - * \warning - */ - - -#include -#include -#include "nrLDPCdecoder_defs.h" -#include "nrLDPC_types.h" -#include "nrLDPC_init.h" -#include "nrLDPC_mPass.h" -#include "nrLDPC_cnProc.h" -#include "nrLDPC_bnProc.h" - - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // Launch LDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief Performs LDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParams LDPC decoder parameters - \param p_profiler LDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - - // Minimum number of iterations is 1 - // 0 iterations means hard-decision on input LLRs - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - #endif - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - -nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); - -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - #endif - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - #endif - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h index 00841b2784..f2373c6341 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h @@ -1026,7 +1026,7 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf // CN group with 3 BNs bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX; - #pragma omp simd +// #pragma omp simd for (j=0;j<2; j++) { p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; @@ -1041,7 +1041,7 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf for (j=0; j<3; j++) { p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[1] + j*bitOffsetInGroup]; - #pragma omp simd + // #pragma omp simd for (i=0; i #include "../../nrLDPCdecoder_defs.h" #include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" -void nrLDPC_bnProcPc_BG1_generator_AVX2(uint16_t Z,int R) + +void nrLDPC_bnProcPc_BG1_generator_AVX2(int R) { const char *ratestr[3]={"13","23","89"}; @@ -18,14 +16,14 @@ void nrLDPC_bnProcPc_BG1_generator_AVX2(uint16_t Z,int R) // system("mkdir -p ../ldpc_gen_files"); char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z%d_R%s_AVX2.c",Z,ratestr[R]); + sprintf(fname,"../ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R%s_AVX2.h",ratestr[R]); FILE *fd=fopen(fname,"w"); if (fd == NULL) {printf("Cannot create \n");abort();} - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); +// fprintf(fd,"#include \n"); +// fprintf(fd,"#include \n"); - fprintf(fd,"void nrLDPC_bnProcPc_BG1_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) {\n",Z, ratestr[R]); + fprintf(fd,"static inline void nrLDPC_bnProcPc_BG1_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf, uint16_t Z ) {\n",ratestr[R]); const uint8_t* lut_numBnInBnGroups; const uint32_t* lut_startAddrBnGroups; const uint16_t* lut_startAddrBnGroupsLlr; @@ -50,15 +48,10 @@ void nrLDPC_bnProcPc_BG1_generator_AVX2(uint16_t Z,int R) lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89; } else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} -/* - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; -*/ // Number of BNs in Groups - uint32_t M; +// uint32_t M; //uint32_t M32rem; - // uint32_t i,j; + //uint32_t i,j; uint32_t k; // Offset to each bit within a group in terms of 32 Byte uint32_t cnOffsetInGroup; @@ -72,6 +65,7 @@ void nrLDPC_bnProcPc_BG1_generator_AVX2(uint16_t Z,int R) fprintf(fd," __m128i* p_llrProcBuf;\n"); fprintf(fd," __m256i* p_llrProcBuf256; \n"); fprintf(fd," __m256i* p_llrRes; \n"); + fprintf(fd," uint32_t M ;\n"); @@ -92,7 +86,7 @@ fprintf(fd, "// Process group with 1 CNs \n"); // idxBnGroup++; // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[26] ); fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); @@ -101,7 +95,7 @@ fprintf(fd, "// Process group with 1 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[1] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; @@ -156,7 +150,7 @@ fprintf(fd, "// Process group with 2 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[2] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; @@ -213,7 +207,7 @@ fprintf(fd, "// Process group with 3 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[3] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; @@ -270,7 +264,7 @@ fprintf(fd, "// Process group with 4 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[4] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; @@ -326,7 +320,7 @@ fprintf(fd, "// Process group with 5 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[5] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; @@ -383,7 +377,7 @@ fprintf(fd, "// Process group with 6 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[6] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; @@ -439,7 +433,7 @@ fprintf(fd, "// Process group with 7 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[7] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; @@ -496,7 +490,7 @@ fprintf(fd, "// Process group with 8 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[8] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; @@ -553,7 +547,7 @@ fprintf(fd, "// Process group with 9 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[9] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; @@ -610,7 +604,7 @@ fprintf(fd, "// Process group with 10 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[10] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; @@ -668,7 +662,7 @@ fprintf(fd, "// Process group with 11 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[11] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; @@ -723,7 +717,7 @@ fprintf(fd, "// Process group with 12 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[12] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; @@ -779,7 +773,7 @@ fprintf(fd, "// Process group with 13 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[13] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; @@ -836,7 +830,7 @@ fprintf(fd, "// Process group with 14 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[14] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; @@ -892,7 +886,7 @@ fprintf(fd, "// Process group with 15 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[15] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; @@ -949,7 +943,7 @@ fprintf(fd, "// Process group with 16 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[16] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; @@ -1005,7 +999,7 @@ fprintf(fd, "// Process group with 17 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[17] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; @@ -1061,7 +1055,7 @@ fprintf(fd, "// Process group with 18 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[18] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; @@ -1116,7 +1110,7 @@ fprintf(fd, "// Process group with 19 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[19] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; @@ -1172,7 +1166,7 @@ fprintf(fd, "// Process group with 20 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[20] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; @@ -1232,7 +1226,7 @@ fprintf(fd, "// Process group with 21 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[21] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; @@ -1287,7 +1281,7 @@ fprintf(fd, "// Process group with 22 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[22] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; @@ -1343,7 +1337,7 @@ fprintf(fd, "// Process group with <23 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[23] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; @@ -1400,7 +1394,7 @@ fprintf(fd, "// Process group with 24 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[24] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; @@ -1456,7 +1450,7 @@ fprintf(fd, "// Process group with 25 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[25] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; @@ -1513,7 +1507,7 @@ fprintf(fd, "// Process group with 26 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[26] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; @@ -1569,7 +1563,7 @@ fprintf(fd, "// Process group with 27 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[27] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; @@ -1625,7 +1619,7 @@ fprintf(fd, "// Process group with 28 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[28] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; @@ -1680,7 +1674,7 @@ fprintf(fd, "// Process group with 29 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[29] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; @@ -1736,7 +1730,7 @@ fprintf(fd, "// Process group with 30 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i #include "../../nrLDPCdecoder_defs.h" #include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" -void nrLDPC_bnProcPc_BG2_generator_AVX2(uint16_t Z,int R) + +void nrLDPC_bnProcPc_BG2_generator_AVX2(int R) { const char *ratestr[3]={"15","13","23"}; @@ -18,43 +16,43 @@ void nrLDPC_bnProcPc_BG2_generator_AVX2(uint16_t Z,int R) // system("mkdir -p ../ldpc_gen_files"); char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z%d_R%s_AVX2.c",Z,ratestr[R]); + sprintf(fname,"../ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R%s_AVX2.h",ratestr[R]); FILE *fd=fopen(fname,"w"); if (fd == NULL) {printf("Cannot create \n");abort();} - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - //fprintf(fd,"void nrLDPC_bnProc_BG1_Z%d_%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) {\n",Z,ratestr[R]); +// fprintf(fd,"#include \n"); + //fprintf(fd,"#include \n"); - fprintf(fd,"void nrLDPC_bnProcPc_BG2_Z%d_R%s_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) {\n",Z,ratestr[R]); + fprintf(fd,"static inline void nrLDPC_bnProcPc_BG2_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf, uint16_t Z ) {\n",ratestr[R]); const uint8_t* lut_numBnInBnGroups; const uint32_t* lut_startAddrBnGroups; const uint16_t* lut_startAddrBnGroupsLlr; - //BG1 - if (R==0) { - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R15; + if (R==0) { + + + lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R15; lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R15; lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R15; + } - else if (R==1) { - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R13; + else if (R==1){ + + lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R13; lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R13; lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R13; } else if (R==2) { + lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R23; lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R23; lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R23; } - - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} // Number of BNs in Groups - uint32_t M; +// uint32_t M; //uint32_t M32rem; - // uint32_t i,j; + //uint32_t i,j; uint32_t k; // Offset to each bit within a group in terms of 32 Byte uint32_t cnOffsetInGroup; @@ -68,6 +66,7 @@ void nrLDPC_bnProcPc_BG2_generator_AVX2(uint16_t Z,int R) fprintf(fd," __m128i* p_llrProcBuf;\n"); fprintf(fd," __m256i* p_llrProcBuf256; \n"); fprintf(fd," __m256i* p_llrRes; \n"); + fprintf(fd," uint32_t M ;\n"); @@ -88,7 +87,7 @@ fprintf(fd, "// Process group with 1 CNs \n"); // idxBnGroup++; // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[26] ); fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); @@ -97,7 +96,7 @@ fprintf(fd, "// Process group with 1 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[1] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; @@ -152,7 +151,7 @@ fprintf(fd, "// Process group with 2 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[2] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; @@ -209,7 +208,7 @@ fprintf(fd, "// Process group with 3 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[3] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; @@ -266,7 +265,7 @@ fprintf(fd, "// Process group with 4 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[4] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; @@ -322,7 +321,7 @@ fprintf(fd, "// Process group with 5 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[5] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; @@ -379,7 +378,7 @@ fprintf(fd, "// Process group with 6 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[6] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; @@ -435,7 +434,7 @@ fprintf(fd, "// Process group with 7 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[7] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; @@ -492,7 +491,7 @@ fprintf(fd, "// Process group with 8 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[8] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; @@ -549,7 +548,7 @@ fprintf(fd, "// Process group with 9 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[9] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; @@ -606,7 +605,7 @@ fprintf(fd, "// Process group with 10 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[10] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; @@ -664,7 +663,7 @@ fprintf(fd, "// Process group with 11 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[11] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; @@ -719,7 +718,7 @@ fprintf(fd, "// Process group with 12 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[12] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; @@ -775,7 +774,7 @@ fprintf(fd, "// Process group with 13 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[13] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; @@ -832,7 +831,7 @@ fprintf(fd, "// Process group with 14 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[14] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; @@ -888,7 +887,7 @@ fprintf(fd, "// Process group with 15 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[15] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; @@ -945,7 +944,7 @@ fprintf(fd, "// Process group with 16 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[16] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; @@ -1001,7 +1000,7 @@ fprintf(fd, "// Process group with 17 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[17] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; @@ -1057,7 +1056,7 @@ fprintf(fd, "// Process group with 18 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[18] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; @@ -1112,7 +1111,7 @@ fprintf(fd, "// Process group with 19 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[19] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; @@ -1168,7 +1167,7 @@ fprintf(fd, "// Process group with 20 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[20] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; @@ -1228,7 +1227,7 @@ fprintf(fd, "// Process group with 21 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[21] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; @@ -1283,7 +1282,7 @@ fprintf(fd, "// Process group with 22 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[22] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; @@ -1339,7 +1338,7 @@ fprintf(fd, "// Process group with <23 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[23] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; @@ -1396,7 +1395,7 @@ fprintf(fd, "// Process group with 24 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[24] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; @@ -1452,7 +1451,7 @@ fprintf(fd, "// Process group with 25 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[25] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; @@ -1509,7 +1508,7 @@ fprintf(fd, "// Process group with 26 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[26] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; @@ -1565,7 +1564,7 @@ fprintf(fd, "// Process group with 27 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[27] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; @@ -1621,7 +1620,7 @@ fprintf(fd, "// Process group with 28 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[28] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; @@ -1676,7 +1675,7 @@ fprintf(fd, "// Process group with 29 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[29] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; @@ -1732,7 +1731,7 @@ fprintf(fd, "// Process group with 30 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i #include #include "../../nrLDPCdecoder_defs.h" #include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" +//#include "../../nrLDPC_bnProc.h" +//#include "../../nrLDPC_cnProc.h" +//#include "../../nrLDPC_init.h" -void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t Z,int R) + +void nrLDPC_bnProc_BG1_generator_AVX2(int R) { const char *ratestr[3]={"13","23","89"}; @@ -18,15 +18,16 @@ void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t Z,int R) // system("mkdir -p ../ldpc_gen_files"); char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z%d_R%s_AVX2.c",Z,ratestr[R]); + sprintf(fname,"../ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R%s_AVX2.h",ratestr[R]); FILE *fd=fopen(fname,"w"); if (fd == NULL) {printf("Cannot create \n");abort();} - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); + //fprintf(fd,"#include \n"); + //fprintf(fd,"#include \n"); - fprintf(fd,"void nrLDPC_bnProc_BG1_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) {\n",Z, ratestr[R]); + fprintf(fd,"static inline void nrLDPC_bnProc_BG1_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes, uint16_t Z ) {\n", ratestr[R]); + const uint8_t* lut_numBnInBnGroups; const uint32_t* lut_startAddrBnGroups; const uint16_t* lut_startAddrBnGroupsLlr; @@ -53,7 +54,7 @@ void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t Z,int R) else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - uint32_t M; + //uint32_t M; //uint32_t M32rem; // uint32_t i; uint32_t k; @@ -67,6 +68,7 @@ void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t Z,int R) fprintf(fd," __m256i* p_bnProcBufRes; \n"); fprintf(fd," __m256i* p_llrRes; \n"); fprintf(fd," __m256i* p_res; \n"); + fprintf(fd," uint32_t M, i; \n"); @@ -83,8 +85,9 @@ fprintf(fd, "// Process group with 2 CNs \n"); // If elements in group move to next address idxBnGroup++; - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; + // Number of groups of 32 BNs or parallel processing + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[1] ); + // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; @@ -100,7 +103,7 @@ fprintf(fd, "// Process group with 2 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[2] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; @@ -141,7 +144,7 @@ fprintf(fd, "// Process group with 3 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[3] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; @@ -180,7 +183,7 @@ fprintf(fd, "// Process group with 4 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[4] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; @@ -219,7 +222,7 @@ fprintf(fd, "// Process group with 4 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[5] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; @@ -260,7 +263,7 @@ fprintf(fd, "// Process group with 6 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[6] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; @@ -300,7 +303,7 @@ fprintf(fd, "// Process group with 7 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[7] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; @@ -340,7 +343,7 @@ fprintf(fd, "// Process group with 8 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[8] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; @@ -379,7 +382,7 @@ fprintf(fd, "// Process group with 9 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[9] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; @@ -418,7 +421,7 @@ fprintf(fd, "// Process group with 10 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[10] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; @@ -456,7 +459,7 @@ fprintf(fd, "// Process group with 11 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[11] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; @@ -494,7 +497,7 @@ fprintf(fd, "// Process group with 12 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[12] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; @@ -534,7 +537,7 @@ fprintf(fd, "// Process group with 13 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[13] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; @@ -575,7 +578,7 @@ fprintf(fd, "// Process group with 14 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[14] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; @@ -615,7 +618,7 @@ fprintf(fd, "// Process group with 15 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[15] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; @@ -656,7 +659,7 @@ fprintf(fd, "// Process group with 16 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[16] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; @@ -696,7 +699,7 @@ fprintf(fd, "// Process group with 17 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[17] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; @@ -736,7 +739,7 @@ fprintf(fd, "// Process group with 18 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[18] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; @@ -775,7 +778,7 @@ fprintf(fd, "// Process group with 19 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[19] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; @@ -815,7 +818,7 @@ fprintf(fd, "// Process group with 20 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[20] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; @@ -859,7 +862,7 @@ fprintf(fd, "// Process group with 21 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[21] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; @@ -897,7 +900,7 @@ fprintf(fd, "// Process group with 22 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[22] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; @@ -937,7 +940,7 @@ fprintf(fd, "// Process group with <23 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[23] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; @@ -978,7 +981,7 @@ fprintf(fd, "// Process group with 24 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[24] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; @@ -1018,7 +1021,7 @@ fprintf(fd, "// Process group with 25 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[25] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; @@ -1059,7 +1062,7 @@ fprintf(fd, "// Process group with 26 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[26] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; @@ -1099,7 +1102,7 @@ fprintf(fd, "// Process group with 27 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[27] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; @@ -1139,7 +1142,7 @@ fprintf(fd, "// Process group with 28 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[28] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; @@ -1177,7 +1180,7 @@ fprintf(fd, "// Process group with 29 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[29] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; @@ -1216,7 +1219,7 @@ fprintf(fd, "// Process group with 30 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i +#include +#include "../../nrLDPCdecoder_defs.h" +#include "../../nrLDPC_types.h" +#include "../../nrLDPC_bnProc.h" +#include "../../nrLDPC_cnProc.h" +#include "../../nrLDPC_init.h" + +void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t Z,int R) +{ + const char *ratestr[3]={"13","23","89"}; + + if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} + + + // system("mkdir -p ../ldpc_gen_files"); + + char fname[50]; + sprintf(fname,"../ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z%d_R%s_AVX2.c",Z,ratestr[R]); + FILE *fd=fopen(fname,"w"); + if (fd == NULL) {printf("Cannot create \n");abort();} + + fprintf(fd,"#include \n"); + fprintf(fd,"#include \n"); + + + fprintf(fd,"void nrLDPC_bnProc_BG1_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) {\n",Z, ratestr[R]); + const uint8_t* lut_numBnInBnGroups; + const uint32_t* lut_startAddrBnGroups; + const uint16_t* lut_startAddrBnGroupsLlr; + if (R==0) { + + + lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R13; + lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R13; + lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13; + + } + else if (R==1){ + + lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R23; + lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R23; + lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23; + } + else if (R==2) { + + lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R89; + lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R89; + lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89; + } + else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} + + + uint32_t M; + //uint32_t M32rem; + // uint32_t i; + uint32_t k; + // Offset to each bit within a group in terms of 32 Byte + uint32_t cnOffsetInGroup; + uint8_t idxBnGroup = 0; + + + + fprintf(fd," __m256i* p_bnProcBuf; \n"); + fprintf(fd," __m256i* p_bnProcBufRes; \n"); + fprintf(fd," __m256i* p_llrRes; \n"); + fprintf(fd," __m256i* p_res; \n"); + + + +// ===================================================================== + // Process group with 1 CN + // Already done in bnProcBufPc + + // ===================================================================== + +fprintf(fd, "// Process group with 2 CNs \n"); + + if (lut_numBnInBnGroups[1] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[1]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<2; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + + + + } + + // ===================================================================== + + +fprintf(fd, "// Process group with 3 CNs \n"); + + + + if (lut_numBnInBnGroups[2] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[2]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + for (k=0; k<3; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + } + } + + + + // ===================================================================== + + +fprintf(fd, "// Process group with 4 CNs \n"); + + + + if (lut_numBnInBnGroups[3] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[3]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + for (k=0; k<4; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + } + } + + + // ===================================================================== + + + fprintf(fd, "// Process group with 5 CNs \n"); + + + + if (lut_numBnInBnGroups[4] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[4]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<5; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + + // ===================================================================== + + +fprintf(fd, "// Process group with 6 CNs \n"); + + // Process group with 6 CNs + + if (lut_numBnInBnGroups[5] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[5]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<6; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + + +fprintf(fd, "// Process group with 7 CNs \n"); + + // Process group with 7 CNs + + if (lut_numBnInBnGroups[6] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[6]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<7; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + + +fprintf(fd, "// Process group with 8 CNs \n"); + + // Process group with 8 CNs + + if (lut_numBnInBnGroups[7] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[7]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<8; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + // ===================================================================== + + +fprintf(fd, "// Process group with 9 CNs \n"); + + // Process group with 9 CNs + + if (lut_numBnInBnGroups[8] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[8]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<9; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + +fprintf(fd, "// Process group with 10 CNs \n"); + + // Process group with 10 CNs + + if (lut_numBnInBnGroups[9] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[9]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<10; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + + // ===================================================================== + +fprintf(fd, "// Process group with 11 CNs \n"); + + if (lut_numBnInBnGroups[10] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[10]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<11; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + // ===================================================================== + + + +fprintf(fd, "// Process group with 12 CNs \n"); + + + if (lut_numBnInBnGroups[11] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[11]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<12; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + // ===================================================================== + + + +fprintf(fd, "// Process group with 13 CNs \n"); + + + + if (lut_numBnInBnGroups[12] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[12]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<1; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + + // ===================================================================== + + +fprintf(fd, "// Process group with 14 CNs \n"); + + + + if (lut_numBnInBnGroups[13] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[13]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<14; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + + +fprintf(fd, "// Process group with 15 CNs \n"); + + + + if (lut_numBnInBnGroups[14] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[14]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<15; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + + // ===================================================================== + + +fprintf(fd, "// Process group with 16 CNs \n"); + + + + if (lut_numBnInBnGroups[15] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[15]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<16; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + // Process group with 17 CNs + +fprintf(fd, "// Process group with 17 CNs \n"); + + // Process group with 17 CNs + + if (lut_numBnInBnGroups[16] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[16]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<17; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + + +fprintf(fd, "// Process group with 18 CNs \n"); + + // Process group with 8 CNs + + if (lut_numBnInBnGroups[17] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[17]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<18; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + // ===================================================================== + + +fprintf(fd, "// Process group with 19 CNs \n"); + + + + if (lut_numBnInBnGroups[18] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[18]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<19; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + + +fprintf(fd, "// Process group with 20 CNs \n"); + + + + if (lut_numBnInBnGroups[19] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[19]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<20; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + + + + // ===================================================================== + +fprintf(fd, "// Process group with 21 CNs \n"); + + + + + + if (lut_numBnInBnGroups[20] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[20]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<21; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + // ===================================================================== + + + +fprintf(fd, "// Process group with 22 CNs \n"); + + + if (lut_numBnInBnGroups[21] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[21]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<22; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + // ===================================================================== + + + +fprintf(fd, "// Process group with <23 CNs \n"); + + + + if (lut_numBnInBnGroups[22] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[22]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<23; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + + // ===================================================================== + + +fprintf(fd, "// Process group with 24 CNs \n"); + + // Process group with 4 CNs + + if (lut_numBnInBnGroups[23] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[23]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<24; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + + +fprintf(fd, "// Process group with 25 CNs \n"); + + + + if (lut_numBnInBnGroups[24] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[24]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<25; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + + // ===================================================================== + + +fprintf(fd, "// Process group with 26 CNs \n"); + + + + if (lut_numBnInBnGroups[25] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[25]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<26; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + + +fprintf(fd, "// Process group with 27 CNs \n"); + + // Process group with 17 CNs + + if (lut_numBnInBnGroups[26] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[26]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<27; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + + +fprintf(fd, "// Process group with 28 CNs \n"); + + // Process group with 8 CNs + + if (lut_numBnInBnGroups[27] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[27]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<28; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + // ===================================================================== + +fprintf(fd, "// Process group with 29 CNs \n"); + + // Process group with 9 CNs + + if (lut_numBnInBnGroups[28] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[28]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<29; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + +fprintf(fd, "// Process group with 30 CNs \n"); + + // Process group with 20 CNs + + if (lut_numBnInBnGroups[29] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[29]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<30; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + fprintf(fd,"}\n"); + fclose(fd); +}//end of the function nrLDPC_bnProc_BG1 + + + + diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c index d36aa8e21b..670bb4d13e 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c @@ -6,7 +6,7 @@ #include "../../nrLDPC_cnProc.h" #include "../../nrLDPC_init.h" -void nrLDPC_bnProc_BG2_generator_AVX2(uint16_t Z,int R) +void nrLDPC_bnProc_BG2_generator_AVX2(int R) { const char *ratestr[3]={"15","13","23"}; @@ -16,14 +16,14 @@ void nrLDPC_bnProc_BG2_generator_AVX2(uint16_t Z,int R) // system("mkdir -p ../ldpc_gen_files"); char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z%d_R%s_AVX2.c",Z,ratestr[R]); + sprintf(fname,"../ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R%s_AVX2.h",ratestr[R]); FILE *fd=fopen(fname,"w"); if (fd == NULL) {printf("Cannot create \n");abort();} fprintf(fd,"#include \n"); fprintf(fd,"#include \n"); - fprintf(fd,"void nrLDPC_bnProc_BG2_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) {\n",Z, ratestr[R]); + fprintf(fd,"void nrLDPC_bnProc_BG2_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes, uint16_t Z ) {\n",ratestr[R]); const uint8_t* lut_numBnInBnGroups; const uint32_t* lut_startAddrBnGroups; const uint16_t* lut_startAddrBnGroupsLlr; @@ -50,7 +50,7 @@ void nrLDPC_bnProc_BG2_generator_AVX2(uint16_t Z,int R) else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - uint32_t M; + //uint32_t M; //uint32_t M32rem; // uint32_t i; uint32_t k; @@ -64,6 +64,7 @@ void nrLDPC_bnProc_BG2_generator_AVX2(uint16_t Z,int R) fprintf(fd," __m256i* p_bnProcBufRes; \n"); fprintf(fd," __m256i* p_llrRes; \n"); fprintf(fd," __m256i* p_res; \n"); + fprintf(fd," uint32_t M, i;\n"); @@ -81,7 +82,7 @@ fprintf(fd, "// Process group with 2 CNs \n"); idxBnGroup++; // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[1] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; @@ -97,7 +98,8 @@ fprintf(fd, "// Process group with 2 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5;\n",lut_numBnInBnGroups[1] ); fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); fprintf(fd," p_res++;\n"); fprintf(fd," p_llrRes++;\n"); @@ -123,7 +125,7 @@ fprintf(fd, "// Process group with 3 CNs \n"); idxBnGroup++; // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[2] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; @@ -138,7 +140,8 @@ fprintf(fd, "// Process group with 3 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5;\n",lut_numBnInBnGroups[2] ); fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); fprintf(fd," p_res++;\n"); fprintf(fd," p_llrRes++;\n"); @@ -162,7 +165,7 @@ fprintf(fd, "// Process group with 4 CNs \n"); idxBnGroup++; // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[3] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; @@ -177,7 +180,8 @@ fprintf(fd, "// Process group with 4 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[4] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; @@ -216,7 +220,8 @@ fprintf(fd, "// Process group with 4 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[5] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; @@ -257,7 +262,8 @@ fprintf(fd, "// Process group with 6 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[6] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; @@ -297,7 +303,8 @@ fprintf(fd, "// Process group with 7 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[7] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; @@ -337,7 +344,8 @@ fprintf(fd, "// Process group with 8 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[8] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; @@ -376,7 +384,8 @@ fprintf(fd, "// Process group with 9 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[9] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; @@ -415,7 +424,8 @@ fprintf(fd, "// Process group with 10 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[10] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; @@ -453,7 +463,8 @@ fprintf(fd, "// Process group with 11 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[11] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; @@ -491,7 +502,8 @@ fprintf(fd, "// Process group with 12 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[12] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; @@ -531,7 +543,8 @@ fprintf(fd, "// Process group with 13 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[13] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; @@ -572,7 +585,8 @@ fprintf(fd, "// Process group with 14 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[14] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; @@ -612,7 +626,8 @@ fprintf(fd, "// Process group with 15 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[15] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; @@ -653,7 +668,8 @@ fprintf(fd, "// Process group with 16 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[16] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; @@ -693,7 +709,8 @@ fprintf(fd, "// Process group with 17 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[17] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; @@ -733,7 +750,8 @@ fprintf(fd, "// Process group with 18 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[18] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; @@ -772,7 +790,8 @@ fprintf(fd, "// Process group with 19 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[19] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; @@ -812,7 +831,8 @@ fprintf(fd, "// Process group with 20 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[20] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; @@ -856,7 +876,8 @@ fprintf(fd, "// Process group with 21 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[21] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; @@ -894,7 +915,8 @@ fprintf(fd, "// Process group with 22 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[22] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; @@ -934,7 +956,8 @@ fprintf(fd, "// Process group with 23 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[23] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; @@ -975,7 +998,8 @@ fprintf(fd, "// Process group with 24 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + // Number of groups of 32 BNs for parallel processing; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[24] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; @@ -1015,7 +1039,8 @@ fprintf(fd, "// Process group with 25 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[25] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; @@ -1056,7 +1081,8 @@ fprintf(fd, "// Process group with 26 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[26] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; @@ -1096,7 +1122,8 @@ fprintf(fd, "// Process group with 27 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[27] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; @@ -1136,7 +1163,7 @@ fprintf(fd, "// Process group with 28 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[28] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; @@ -1174,7 +1201,8 @@ fprintf(fd, "// Process group with 29 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[29] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; @@ -1213,7 +1241,7 @@ fprintf(fd, "// Process group with 30 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;iqx_5I8iSn4i)=}VE`ixd$-K^LVXiWNjfQA89}?5o(2Xh<}Q9Ytb~n8b+2 zf)!&lL8C^EF~(RHH4!^T4gYiAo%y~yZ)fH^`~CfAKi@XzzWd5K@4h#0%AP-Y>b^z3 z?}b~DH{Ro~2@NKgUGnaEJI0on-+Y_kjrJPhy@%J`Yk=RSW*-q^6C$5G1J~hanL$0T z7@zbwx=416E}CGzgrA*cw-ygXrej$vmI_|6bfMWF zejXl_V_onWrsGeh>l38w6Qm12w*>_YKg0U5ZhRdW_&cy@0)FxL1b%pv%)9-hEw`B; ztT=|>S1y!}Asx$^b*l&rX9xKuwabp6e&J{E(;K{G@xt9l z3|?}~z$J^9p0;w}%F(+I+i(HW;MUV)FmZ2o*Eoxgm=QKzn$f6`HlmwNN(A9vEpOM^Z0z5S+6*?XV)!v+l- zG?Jw+Qh(tua>PIME1F1J0@if~0?k;S*oxtC0 zvhCZecU6uX=yS%mb%v-LkgLM6Y`5lU3$p z>r+on@M_P1;a7{wyH4`F&1ay2=2j0}hL7r1JDXRp{@{$FBc9$2f2Lu+I^qdJyWTDD zTEl&t`75-4a%VB@t5-i&{p81cRr}kjU*35d5Wg1l@zoL4tDlqf?*-{=_PlO! zcgV8ET%@c$4+S~mxzbCp%m4Cewr};SJu8oc!HO=qBD9|SL=~bu?00QDV*A-hQr^|u zz8s(QQGLOu>yh2+$ChA6_14LouI{}z>N|P!weq>;dVH=jsJF6_d?`Aw)0&HEkJ8-) z*kn~Z>wmj;)po+0VAboY*Btolrs^v$X1hPWiSAZ!71PsU6#^d$P&=FZR!@GTdeyma zc&C*=QH%YxfBz9apT}GE8X&8me1viKajNBsZ;9{8L;=(;2Q}>jsC%7~!0z!rfO5rn z0*-^Koz?+$-npzDxt_ekYi~Ylx8U=WrDEcX$=bkVL140jCIDK{YycebEzf~dS0NN)vLDn<-hYT+ERYeZ$U}IT3?KO*%mv{ zH`Y`bKP$DLUEf2?iKd&h>8mi^I{AG%-2Nlp)=YlC{Qk+WqU*7AJGALt)+;lwMdsxX zdF2mDMXLI#ikt^iI-oME;8mJ-9!zRC2$b3md%-4JkQ(j1N_lUa^Zq=&Pgam6?jMBu zDTrZI%JdzfazLvlzwfU)_kF+olJ8XCu?+t}!w>&!>czqrr7=t}mf>Tg4hm+tGyG&^ z_>1o{GrSe1f!BNt-w4wLhMyEDY^2zBI07~)43Agd+vK?F&>s{Wt)R*rG=xyKf*ghi z0ty%|N@92leUyj~7QQ%Ocx_xCCKy|@RXcMM32X}M!+XF_Musb38usBg(InA^jr8FU zzRh{f$M7RCO9Ds^K@NMDE68E*WIzFX#pRcD=71ao7u!FNBYXRb z53*O1#vZ{~_MZJF$6jDl7<=c!Pe%4;!!#p%y{*@L?EUbyZKSGPH!%^o8@!~j_moQM zu=kOI9QIyRki*^sfCBbPlGwYL>|G{4$X;n0djw@Bul z^RYJ`rlG_g_KpUW!d{6=>9E&VK@NM(738q@<(E13N|V^zK=xjMA<9hl8l|Lf( zI_%x2Acwu5E68E*3_t;U4U^dW2ico0KFD5K8hZp|*?Z};9D9LHVeDNDKN;CO6s8&3 z8*IJiW3NOi5_ja$7f=d&FZ{>y?y&cnf*kfr(SoUT`9Td!7BlyYK_uly=Gkd>*X~uEyGMFZ?cORe> z_NJ?p4tvWL@}5&#EpAH0j03_%14%WhrMqV~?6r$JC^&Nd`NPcY-44@??44=7=3{R< zOcVOvazH8UwN@z|_Qoj4VXupV9QKL<1?)9T>U-}?@?ox}(G zUU?dO1Y_B|;a@rW1DnDk=N$OS$X*|qX6$=EzL)cwukXDA(**Xu1(d?xI+fC4?=b~A z?A@jyhrLSy1?-h4vG*?7J5qd*y^1vU2*$Ga_kZTt3v3Ew?-%fsk-ZaOnvuP|tk-<( zwU&y+jeBDNrLgzbyOwu{yl$@X zaOC{!KQgm-FHAGCcY*bqkG+Fnn$Y*o29&~HCzaA+Z=!-6_IfGEVXq0GfV~z;>{XGy z_uk2MotA0r5sYQ;sHlU2*=r9!8T;OU{+^k=r(v3L+*=3J1oj>Sl)~PTDy75TDg`<0 z9j_pVy=i~~_F5*fH-YT+6d&w+tpE@I*drLr-r}f(g4yc^KNXw?;t@d&?B$us0V_z+T%V_O_6{0pf#wuU#5@1Y_B|=d~RDflXnN z^Jw_V$lhp}X6$>-tk-;f@4Z(O*=q;QabFtq#%dAUn|IA?^-|sd+n0gdzb7j z6(3};GL1cgvF!c(FFE!Co5I-J2tOIwI}4^6*_&a#=3}p?R3vWPn*u0>y^mk9ygTfb zE2j>7U#V0Mdv5{?*sDxp&l?2xHi-|i*FKFsg0bukjyfnfa(?u3X7(P1X-4*bX1(TP zZxKurBIg=FDeMhUDINA^Dac`OcLh1@bp#Z!*FK58Dzf**wp`cgkj5UtSoThdIw+XE zzVMT=@BQ!3nc4dbOf!yqcfvG*y_W!`u(wpDblAH}K@NK>738pY1fYPu4oU1yAbTUk z2m4;fH1-I_viF-m<>(J=3X7a4!cRu_Ccrdf-)m#N=IeVOzm&*cIlQE>w@IaR*n3Su z4ttL%$YJjmKmmIllh|88_D&ZcWUo^idjwo4tqTS1?+W>vga87 z_YYy2x7MDA?|*nY_O>W*1n&F5ZBfPYxupRJ$>`ip-7lx@6Km)^anPX2h#|93*aXsdm~|*9F8OGHMU-3!f}MXe>`Iw z$zEP>*eijT6!tc%lr|in&gOkVLAFc%gwXv8a@e~XP{1B;Op0f3BYm7GKFD6?85+QabFtq9BL8hZN+ncO#&H zy~G=nI*$f>%f$!T%Y0)}guO2w&9PVC8@8O*9ro5K$YJkX1v%_31Qf8B zcwy~iYHvX}YB zqzHTCq7DjM`xDvg1TQJGqQJ#^_q{pF)&T&dq)CFVQ<%cHl@Q}Pvz8MuaSZr_WlEh0eguz zCQTrF&q~f@FY}E_5%wlU9Td#o5BFwf?`4=~Wbc>OYd-eQhG_zO>j9;(H&LZ@*juC^ zhrI(7tZ$X@N;Ij{NH zdkm%t?7aslg}qfOrNiEx3Ub)HLO~9DrveJtOT00uhU`rdA8h>0Hzq~cd;YE*d%?|1 zg^hbP@RO0fxiHPhUO($KAA7s*Ok}Soyri)AtV-#y_pyQ;_WrCOhrQnd3fN1$F=;*7 zTO&TmUgjH_v zfoVeDTM8(Jy>gY(VQ++j9QN8P$YJk)x8&GMyfJA4*?SF!!MK)2Syzf%wALY z$=LV)d2?p=eh1TxUlWNG`A>xDVWxg>f!rmJ<m?reS(*dQh*G{E$*c+!HhrMnJa@cDCC}1z~#-uG|@9*n! zT_^L6NfGuAk2)xrz1HxPvF~laHZyyV!!+Z#cNI(%*xL*!g}p;mN{7Ak6y&gXw1OP= zssRP;CEl3yF4^lUKG^p%-nw$^@db>fXl6DFAZbT;oJpIi3D zXUdI9Qvh!^HzwT*pS4Ty7QKlmxc_J#-Gw(MJqN4m0Qk88wYPDfx-sc$?5`b2pOtld z^2Ve)wZq9UiQJg9Y@DgZ4sX2qtlff7_dhQMCJO?S9W;sFn6xP{SsR#?>=n5&Y1G89 z?i;TP^{};eHNMv#gE#%3m-zqbLr9j~X3Ne_0?C~Rkk%75pUJH}jB6tY{`p6u# zh0sST75_n^2w^9o7h|E(lK?%SAnR}?p=%U0F6VF)p|cgVM-JLSXn}&P!y%IaO;*sD zT&m*<^;6LJ9CRn4as}BNuRbF5)mqycHemVt0(w(HR#_#49v6tp3U8D<2dNqA6aN!f zM0R^d9Ym)GCF%bOOsnVXpXTJ7PiQZsnnu)f3rs_aIO=&uL5@W3iiM0st^|a^jsL&y zlaGSK1=mlslNR1yTkBkAM1wVZHXuxgWA0 zjN;RqoL^S1C+1QuW2)aN$mY74&SV2~)pR*XP1)@^J zn*w8%s&5L6DD|oE`2ifYungB08xG+F{C z5Za|u*|1bY=zTy5O5FlHr_^(lixIhuy(w^UE1;-SM`L#`<=!f#jczNM@;E?&Qj4ro zZQ(c3NT+vl?yX!~eeYnZrV6sDhU^dM^EI{&ZGny_^tyr^rT$()j#Aev$WiLW3bIPQ znR%Tc5QP@r02!;);O54aFmTQK_e=nnsj*fRxV2(NXF$1zEC< zQs*kjQR-MgS(N(9YD=$W-YE53Kq*RH7n^bm$$AV>pw!|-rN*Z>IiIUsJ4#)sAX{Fe z)cq9XD0P5>9Hq8UkfYRZF0*apDD`g&vP%7$mER%|l^Wjc8LL$NU+5w+b+4#{f@A8p zmu6P#i>am&rQQnDaFleE`kaCsrQV|;N2zN8Wl?G$<-#&=^fC=licx(L|F{=X>Mt%f4I4TrSgF(CCu2bDnJ+8w2Kl7h#L{=R}7rG5y9 zS(JL7%Gfe*^s)g^ic%-VrZh@j3@A`)X`)i&)0>?8D%Xxun=8nc*C_SNRkjTsrM{sc zN2!k~$WiKT3UZWsse-Ihhf=9a1ftNwn|NcDs{gxSM5&)#m{V%qn|SLn`fq@rj7nXZ zY8p}MG$~!&=zpq$oS1sBf*hre1C&LnuU=s3wagp6dr65PCJ8Nv)I7T|tgg zhbzb`^&~2_QXncdyg55osrtW0Mq=u<=bDBM9Tcq88Ss-aruIxVjVSfIb1d!7=-)*O z9yj_IE67o5EgWW1YK_X+GH>*<5m1U!_l-?ylzJkdK&fSkN{vr%a_+BOJ4&rkkS(uK z>epx6HguHwmVz9mKA|8-skbZ0QR-?1b;&K6tff+y3PhoWH=@TXRsV;~h*JN3R!*sb zjXGghkI{c4{A5(>S*fNGrOuGj#f|`i<8yn?* z1x?8H?24&?t_GB#)X2*J0Oi82q?`5kS%9KSjja5Cak?$CO=(vC+aYD3)W%k+w(w@< zKR&(5`LD{gv-1C_f^4p4<^NU%*)DC)QC*@SN2w<&$WiJ{1vyF`sUWM=d2IO(0#T{q z0|sK18azCp?mYFn(@evL4hmN4EcnS7Q+uVFMwI&f3QN1A)G8^s3AdJPqtsFbIZFK) z4znorLY1*)-st5HKq*SCj!kKldJ>>OsZA1<8lT?eJW#oIl-g23w!B8E-!8Xp=qUAV z1vyH6QbCSVf2klxscRHumAaBjT_zBP7CuZNR;l{GyhdW`XQ$?rTKB)a)?@U)1Aa0p z^_*1Gh*D=s>EcHJ(-mY1Ff0FuDaaZ9Cjd%NYUCW%8>d)$?PzMo;2!}+l^Qumb+bxo z2U~NF>S;iMQkz<(+QOT2R64zr^D5=qc20AS>Uag&RA%&_rXX7&bB=15f*hr`Q;?(7 zAC}p+ag_Q`1zDx8qf(y}h)N9~91*Kj{U2>3N}U{aP;gBB@#M@(eI?a2qSQNJ8jk+X z5!H(dvSb^jKA<2+sn-C?qSQgkg=O9-bq=5urGB;47TKmW^VIf887Q?`qEh42o1EWN zt{tU5t{|JMQR)T-IZC}uL5@;SQjnw6*$Q%$I!ZxSshg?PP6AP>;X^WFm8$=HZ$zm# zoMaj{bWpHT=fF?KnA#`RG@{fWmsr{zrFNHs#~u4ORFI?8PvJ0&QZG^&Tjq^k?gEse z)cs>q8l|2LC{SwiM5V^3H#rYht{tVeR*)^PQR;Um+BS5Q`i_Der9Q17N2zxz$WiJQ z3bIOlgGxPBAPOyfAV{oI^?xdkDE0Fba!RfHpNi`-`ridV8I^ios%b>2bEI@}qyI_; zIWhGJ1vyIH8&DRdzO~rWYneBC*##&?sq14?8l^r9C{Sv7qEh42o18CJt{tVGpdedb zqtqD+a+EqkL5@<}E67pm|Bkn9<0$oC3bIPwNu@q75S1D}{3KSX`oA(ql)7KkLBTO~ z*KwJZ`f93aM5%YdG-34rlY$(j{zgHLQr7{>qSPVEg=OC8WiFr;rGB%>7TKmWO6`c0 zfl@0Hl^UPkh*xKD0P@}VVO62IT%oi zQgRGrFKTjK&h<~l^UPk=@I8JZIx;Z zZ_ZK0r#CqdSFW9v|4Ief@|u< z7l=X&AIuc1RQ(_0BTD`H(4121KA5Q=EE7y)vmnz7X*C=(4 zf*hreR*<9A&I)prTBIOHsUOX=&1RLlnM!?8ASyL{2vw|7g9l78Ohj)qJs|3!;Fwwr zKN*$!#=&W(5vAS-(=fC-M^vvU$P!>y{vT41Gy2~MC_$-_b5tXg3p<*cG58QbQKd%C zQT_KITVy-fnsZcLkup$fTdP!Ccyo?Qr+0GxhjMK@r#VOUjDl<`Gy319AX^}Fj_OJU zIZ9owAV;b56yzv%PX$?}zCopS7l=v?AGj5(RDw`pU8UYS*EDSCpkSpQ0zVm*Iw;jN zqSRt3UEC2>9|c*mjZ&K_$WiJS2WC_1<**C8h-Ka=^?pDpN}U;-(#%s&0~9E=U7}Ls z)0><}D%XxuJ1EGO*C=(@99tDfsqZVuQR*KQLF6PIHjJaAV;Z3E67o5HJ~gp_1#&PUdz1E zODSBWDD{`IDUDM92q;i$Wuj8!)0>>vDA$fsmnq1W*C=(af*hreRgk09t_pILTB0CF zsoQ7TX0uAIoDQY_NgygUe2`kKQiF%2)s3msq7DjS6GcQK>^xO(RMzmD0t<)P4$blv=JJN2y;;&8F0!z%J|}mU*L>2LPogb#`n@ zqtr711xoFZsMPrMCg)MgwWHKd3bN%jO7#`wDD}ewY%Lw7{!u}WQa35cQR*)gWR*IP zNU{l!W{{Z}CRO%(ErV*tcCZ&s0YK?*%r5>vwN2&V* z$`VuGn_@Y%%p1Klgo_lV-Wi+HDD@>kfl@mrDm6a6$@vQ9+EMDM3bN%jNpdd%7pH$msvr1h_rEU|5N(~k4v|`g;XAN?i{qi&94`7nXUWmm>hBDD{8)+9KPOMyWlJGEi!#M5V^3 zH#z@HxptKLyn<}5MydBH$WiLg733)O3%|+DjlRHGJ@4tWtxA z8rB{CH%>MU8#*XhsYk$1Mx_o*HH|2>p_DEzrVdb$qtq4(a+Lbbq-;vP5_Vx1vCJF2 z{02~pQV)zxX_R^)GIUN3+FI-3`yZa3TfO>&>Q$dsY@NIVw-9+-Cx7LekDYY7b@C6~`N^a;lYgjQ zw`S7CJ63P4oq8sl-u~VVRnxz_A%*_^;C*cHAN*D4{!nz@?>5t6knIJZuE&qnk1g4S z7T7v@lXoB<*tB)>=3@EW(g2?+&z5Wi*tn~myf>bySb?|LXG>PnUHELt6JS*xJX>JZ2vO-etm=Kt3qDdbq%j)Nz_!dQwx=%s=(n+?~4rH0j@D~4U$%?tC*O@tc z{cOnzgpO2DcQ7LlB3wXd9|hTGOI}8(kAm#8CGRBEOhKJ;4qqhn#e}ffPd;LwExDc0 zUlr6jm&!W`(4zt|Q0haeF2HgO&x1`61TRKvKA>+$wZCmm1zYLy(b{xis_8OqT4YUQ z9{G2tHvQ{fxdOzPzN<~|O*O4NSXJu+mZ|=%7Ahctn%e!B6rS9ueBoRMUuh z_L0(=G2EWLH|jZFL5@VG#X?3R!vH1BHfzzIx!(A~I7_cR$JpmkH2G(MqGR~+*quwc zHa6uZrhE`kFowrITXF}D;?tX)PgAb#Ing19A=RM@vgKV#XfFjhO6{p2N2!ezG1S*1R}Vr&+OLd*PY$%s-%MI98Z)X&CdR_ZgUrV*uH2h%Xl+2f*Ztoh># zvIKaC1KOY<8 zvCo!VMkAfx$@!1UwViElVyaCFvZ;0u`h|jQf%+T?=qv>}N}aDDN2!w(QX=C`GB`VpGodXsZE<=Rnd0|nXg8l`@+yKO^9 zsoNCfDD^=FIZC}=L5@<-SCCcegRJ~90#Rt0pDh_t>c2+jlo~vLGV`ivWc0rQeljX` zS*mG7sgtF2&JnzcsV6ANQR)l@IZ7P?D2q~G9AW9T%p1LY4k$&bKaWjml=={$K&i3M zmNZI@Pj7NQL%DX8dbomYd5uyhD#%f4F9kVDZK5DYsXK<-wsDmDnu4rS|3alcA`q3D z`Pq^YrH+X@C^)8mJ}k3RpG!53DD?)ICXD`D6yzv%qk{Q#vX zwRWg2vQ24}+6*ZJrN%y6(kL}Py~+6{<=Ro|uN7o-HA=l!L5@<-QIMn5qZH&QbzcQJ zO6{*8tJKe_)Cz&9)XdM8j41V|LrlYl4hmN4e(;kqrglm-jVSf=!IpMs^lvK#j~o5J zSE(GOz6&UeQdcS$mU*L>n*gOKb$o0}qtv4T1xk&5wxm&Ne0q~}59QiXYMFv;d5u#4 zJ;=79qtsUv2`$_5IM*k%Wa$@Q%1vyIH9Z(jf{%L@v*D`PP@+F`YrCuGI(kS&|K!H+Y zpDk&W8lT?ee5P{kDD_AM+435t?xP?_seKgWD7Be_9HoBI-?ojT)W0goDs>>0`lvuu zYUXE4MwGfo)Iq^9^~-*lmHK?DX+)_v!8Bp?e@a1)QtwcZqtu@O%A(Ys%7ta#=w%9^ z6s3OL*B05PG)gT;%0Q{H&z3YwjZbfK{kOa+F%F zAV;YK71SlSQa_VQZ7C3yn)%t15vBgDk7?M@LBUF$0zVmJYL`^gh*H1oZE1H#|4J!% z-01(KO64f^JwREMdX{ownKyd51yG7oC&Z>SN<9`(pw!rBOB$udr#Ct8rd&HpZLA<$ zUZd2{df7H~l=`ZI9Hl<2AV;Y;E67pmDg{}kE~8S97l=a3{A|gHQa{=)r_|v2lZB1` zx4=(ErLIUdjVN`Bl+MV}S@~b8AWPd?Hp(0YP001^ZG=VxN>FNK<$qgGORrr?H|y_T z1Bxm&vhsgTY)Z58|9e1zQe&SjX;%K@)0>>nR<50u{{;%NQ_B%+c-*nQ$bd#l?%}Fj|)VlW`4G0M5%j59TXf>zwVw{sV}6OMwEIBOvBON zQR*`aa+G?Pf*hq@2`GzFdnp%|d83yD0HrAP({8rNHlE zk#kggtCV)IHRq^~0~9DV_SuqV^w;T~oO>(RwsUUciKwOuvZ>7I|9KbNhPFWF9M$Uz za+Lae1vyGxuOLUM7c0mrbsm*^fZ-t+XNv0(LxsolopTlBD0M8LEJ}T)lcm=(Z`e477B8d`b|gMHjYyNrXZ`-l~n2$fvD8X&z6iR zb+4#{f@A8p9WpER#Z=RXQg4N6IQly=^*IGOO1(!xj#AeG%A(Xh%7ta#=w%w96s7*B zy)Cj$X_VRuDFda(K3mc#H9oz``7g?~qtwj`vbh?i-lQN$sTV59QR;CDa+Eq%L5@;~ zD#$8z9hKTvASyNUvn3-+{Y9l|*w8`2N}UEj8DnbqRMUu3zinq}ca+*m3LZE5`wDWD z`XL-srf*hqjrXWYDw<*X`>ZJ;@O5IGQE)j@A%lvG~h*CdklT&K&{K>*b{|)eyQK>6a zO(RO3CZ&rT{ZCbp6H^aXkfYRbfU+p{)z+3?%e>LccYsoqdVOq4qtqt=1xk&5wxm&N ze0r1f`O3AU)MFH6%WIT6ML~{I2Pw!=YAXdfO5NGYwvD6IzbnWp^$jZZDS@ce%+HpL zD0O1gLBTQgyOx=i`lnRWh*CGeG-33AUO|ph?^BSY)Sm;&qSSuMg=OC8Wd@)WrS529 zi)>RGrM5xJK&i3MmNZI@Pj7O5O}TcI`iO#Tu12Z1D9BOjMGA71x>!MuQl~4(QR;97 zS*7lzQY!_bQZqkWGNROLD@?X z(}+@MNa^B6{}l>yV(K9Za+EqAP!^@W-qg}-nKyd*9#D!>Z;VZ8l=>u~K&i3MmNZI@ zPj7O*K)H65x=2B`yhf=9D9BOj5Cu6(ZKEJZssC+a+s0AqKNMt@I+{v-Mj$FR^Rp!* zO5G>wpx~JLedEkZ-Ii(^QR+sRhNHi;^8bQ@EN$i-)%^-`R{pOBl%UkeIjRB5g+iDwMU{HIzB}cMMz+W{rCIrJhm?U*W1lT)R{rDDo1FiuTstfOk1ELKYF7SlRgmq{ z<{Z@}3UZWsqJkWy&Qy@2)R79ZN}Wfgb`Xe4&HQZ1h*GaBGYuO$C|Iep;3s2D?Uia8 zQR?>%E$xm{tEAv2+&W4vRgk09kKr(jQZG~)Tjq^k?f{gc)auxjMyV$O3X~fAY)PZk z`1B^{fy%X`)RqdeSpqz+{2!(uXY`){C_$+;`W)38 zC6-=0nwl~AM?g`fM$S>)tWw&+)|{hy8c?9r*k?S?mu_=vGPX-hyHTKz(Myc`XP0oXrYe%WA6=ch6l=|KOY#TaCeMdo#QlD0k zqtrVU2bEI@}qyI_; zIWhGJ1vyIH8&DRdzV(Bp*D`PPvI|g(QrE|(G)jFIP@vSZ`;OE>c13ZmAaEkeO@36E%UP_BTC&b>Y!ky?)qqttbPvM6XNzo88l`qb%0Q{H z&z3YwjZbfK{+n{`D0Pd1Y_3MB8x`az^>PI{Nvhgp<*iOSeA zZ}f5xpcJJ}jZJBkdJ3RGsj<(NG)j$6Z*m^0Tsul_s~}rmqtx%ev2Exm^<4!yN_|#A zj#BSdkfYR}D#$8zG?ltSAPOz>vn3-+{qpOaQiJDD7Iy4^5By|QYE7zXM5%M7baA8q zSqgGu>U;$`N}U8Ki&EeI%F=6@H+u2mB1NgU#ile$-3lmBYV5NmjZ)*&o18CIt{tT= zQIIXKQR*xOIZEAKL5@;8D#%f)ryxhEAAD(>%_?;smHL7}RBGmDOGcDBCF-EynCin% zMy0;~MVe_usrSG%Vf5doAV;YWD#%gl^?^2cI4 zgR-o)4U$z~{O=WA%DY~Kn~pqh>gtcDuKs2ceC%rdcJ->K{pvBFoc3|`s%Od$J7VJD z6OWj91NiRaaH$LlVkzz- z$IIP1V#igmeO>Hp8u?yvNoj+IWsMrQ@=IHml@=BGB}`WwexV2C;(1*#L4z_lZ&uo{L1|HOaf$gu znVEk-&-4AFl42iwotpdb=QZ+6iyM~F(sy9)!`|XH@qoZyFMJmH$O7JAC_Yq*mMF7d zDm!v`kd`0C#ihkaTfc2Dm`?^*Q}H?yugmbd7yBN;>l=LU?RzyR!|5u#?yIl!{6(p0 zhCC`@*BdVc!kUxtdJx~Ale9I+vZgV9@tz%86nyy~Anm%5?n*QFvnnB2|#A^hG+IW?28i+J?bM4*V=jYi{ zoo4{u{ObEVPx11?q6UT<^i7j_k@+k(dm5SVO}s`xO3WUK*P(qW_7{1Sep7?C_L}2+ zrN`&VihZfaz*uI`W}db0;^ zu^-^=hVN6nfp{Nl%CpFz{XDU!_$PROG4_mL1H8F-7yG-7{Wsnx*u&^apNsJQCmy@_ zcJC#;-(>bo^|>dyvE3L3r5)qGMeW^RMQA_Uru-&**sj^OV&lO_d&^dAzR|0cDcwsc ztV@DC8yL2W(4wXI%a%U$PL}nCAx!^F{7%g^ME<3Cr&byu-x8!P#<#FWiHS|x67bg$ z`fCg?4e;IoYAwZYe$TQsM?OvQ*AVHb&_?)cf`m;>Yvl7l#-gl~57{UEDcu8W?&HN& z>@ob!J>)-2diE{W+c&jFc*pM&yf?%?my@`XG(|m|zynL%3^}qD8kqKwJ{y-t?_*@Z ztfEd{MP3VSmiWCGxwk~_6?m^enieQW31UMrzLh7YvOsHClmGTP{#zmX2>m^H z^mg*!5veNC0@8FzM1(S zgo%mp-xDoXh3^AV@~);$FjdLB4fOUve*G}58-Y^v_l9A@(g^u?LAko+O)bi2)L^?e zMapJ||Hk;;s2==N>*T)~#!vd<*jSWF|Kz{Q>wu|GXJg;q>x6prz<8LA|32tB?Ee)= z-w|!s1LbZ2e|^x3oio&*Bd&*(m1ZQj39|D)%J4ti8}E(t_Vng>`+$$R-e72P59==R z+d^+P+HDVS8uBml4pjV)^|JH72>dTY>f^xwsR94{c}FDXYJv7>t}#6v@i}Vct)@8npdv@0uL{hlBr1>&5>D%+-E^JVX93 zMPIzlyDoqAy^W^-zvDgN)#4E8IPY%5|E=i%_2s{h;(sjoXcRd_ODakclshBff41R& zr0M_J`M=!oe=OK4$84AUul1J0(|P#Izil)8pNfBFafSD^;r~qUSKj6I;{Ofse<%9i zTKsVf`IlemWjM^+%OB!b`Ln%!{ZGAroBrR_7ydaT&$qSr_C?Lv|Bm+#5BlHU-dXi( z|NFgDptmAukp1r$-mz%El^OfrD_%dp%6kuK!uEgP8{#kbp3T_)?Xie(6Y~58%Kx^v z8sD$=o|qV;XP8pT zPha&fKWF`ti;n5A%qQ`O%K3q#(k2N{NVs-#8PJ zRSC(1rIc^<&hj!Hj~baPz0$t^8)w@(r5yPPmvM7=X|uA}`JHHj7GlNHux{K~V;*6Z zp{!(EwlD`;g_Z%7;e*E;C8h;9Z!*(u$9gj{}Pac_2#aJ{mIS6OM z5D|JT1IA-`)`zXk*$m6hV`}b~7H58Bg!Z(}cFb=w4c^EeQwy)G2|e#|KG}{`hr|bsFQ$&V_KvXJ>k=9lyg`ebd2!98EJYG9N@?a-Fm zV=rg_lXWzfn6+llVr{u9#vViEQ}1jg>YeStx>2c;JAT$(6Qsc4) z$KF+c#O<^Sz?x!Wn}xYCD>oWZ|o(kbr_GReD*8mAZu3aDXbH7rB~Y5e{SA2h}d|pY@PU;=io4hn4}9;e+dDT?}vnj&3mrd@q+$GTiPeZO{ zLX8;z+o8M?|0_@$dMSfH#^7?`ZA{Jh$@Fc3mgBDhYTgvD=2-pUN@H8>sl@O4w|{%I zTSv4*5q$8h1>2^H$=`=>mbD4|H#B=_)e6T6%$rBdJgsKqe@9rh0@evf9_>w8+v2k+ zezim%t>B{*-q};zBbRc+C;Kkre{1AZ39C-^ZGPCZN3z~*L-t1YLB>LUXLO-@h|4Gx z#($zz3ik>^_PAH(KJ+1;CH6{hXD;;0^-77q%z?g{H~rLiW2vcOelnVIoTUOJ)-lR( zF2FKKl=Shd5%zJEX55nKOKTz$|CyTQXH;PvmKg?P8_Owk56)WTyclgHR*;MOZY_|S z@shI-mYi&|O{k(G=(7wj`Yp$c{VRvCW`#_Rkim3tNHlhANT%Spi%2 zan_8ng6oa!zyH_x-yR-(=sb-7mGIjETI_%lG{ycf{&zsx8B1ECCooD;(_Eu&gL1Jy zvt=8hgl(X1mahoksC^Gsj1FzFkMX~~DLLbR1#GzL-^%1&gx1a|MxQHa0iQPh zw?xi%Yl*KsPwAm-92>Z?ABUU7e>wjd?rRf#DMbm3QRWUPacAVw5`P|kb7TBx+thc{ z@xM1(wm;fH;(rxBdtgnm2XbhD_b~o<17Ce$)g3L#_}>jVSHiZ`u-FIhR8tp}s1jxD z0em-j;L2uuq@z-MV1G}vKJ%0KPj<_&zy9%m0M?u&{`Y}L_TMo6_r@?J8?5b@;_Sj;ygK4Mb0@6r_eCzP@w+vwhofHo zvA+tn9b{BkKL#ZJ_ec5>SUYC>w}SuSXeHkp<&8vHn;>tA|FmNKABJ*`!Fh&`sE5S= zt|-wMSPn&*#zG&Xps^81+a9IwfYS8<(hvyae=qFCWe?cf6*covhdxNfvloTMe;x<1 z_i^^fD8dm^;y-6pj7rUchsRNjhm5z3^o*#S4HV_tQ4x4!K^65f62y*u*m4j*Cs-yOAK{O^VGdeHCg$e}OxwSGws z5GmTAci8wp0LVyap7DPu(o6gwic+$Ld!lwa{&&GIwt~$6N0}7$Ek7?(;)S02T+>MO zKM&D>oQ^8Myqa0p7=hC(i#R{*MMC@qZdrJqfmq z|HBYV_5q9K-u~c0$N!NiG2=gZonf>z2y6At@SF3CeZg)S_Wxhv|KZ?V$N$6dOXB}n zwEF&Fn(==gSPtX=0&fD;bpW{I8B50hc_^X8|Glv92;ft^BT=(n-qCn<#C1cRu=faH zt-V9>IvmQKg=l&V&Ky;G3r+v7U;DSm8JCXmP=#|?!;sr?XobGG2$1oAxrzV#MdJSq zwBu5=*lB3FgHeV_V5cF@x;4Na#{Ze#>8Ohv|K|hQ2l0Of)Uyz0$Bx70cT13JB6vFn zfB%>G&zQov#v_QXC|wcWZTxSCQZ)zPWq5I=i$|FisIkO1IjQ>1p>w})t1wFU|_M9W} z+`Gj8N+9*!Wd0w<|MAcep|o3k(3(3K5|_qS`+2*cnI>qD?m-jBaf(n_wK~e6W7o zNc1`1I}tT!{ND@u<$1K3(743^Bhj-wD0O#~BaHt?LCyO^$pfMPY0$F7|ItwMG0^o$ zD10KcJ`^=&{GWnv<6tB4f0h}!Cc%3JT7>cc0H}#aYK6uB>LC8FQq^YsuTF^nhr&+c z|0O7aY)9jxI{41{{}Pn8Ct7<+urG}Nr=XpCdl$#X|I>h+S3vwf9t@*|Bu1>%-hjwXM>X&IH$%SpH4x#-4RLe0N*{)K68-Y?uem`{|oSU2VV8v?EF7p{J#?Azs$t{^T7Od zP|x$w6yyH})bB#?BGhdQ%6|gNeJ+&P0Ow%u#CiSaypy~uQR*wbRnS)_?3MWc6x4pW zcZ2t^iT{tHZiU7FhtXd*ppVt!+5yJ@t=_HPN6_b)LHvILJ?nh5<|;EvYz0?KQPzLs zEc>6K|3|&Yfc^#CGydO&Ix+s=kF&t{qQpNl^Zz@&zoHNP-upFtKZsJkgj^W^|AKz< zTND3(V&?zndRN!C`C(r-{_lmjzzfVdC$aH=IQ9)dFC2T9 zhu+KBGyqY(FEmnaj;|R1X~kH*JNiAjX@t))&{tP@8VyY1zny7itq6TqBUW}n3HCDc zhcNyhf+#owaepRqKLnq%keiMFBfv^~>^s85|LG|0p3wbNq!^C4vp4$76cbe#|Hp#4 zmgpB@{GW|DdnmLw-^Bm@bMe0#k*~g63zV&?iIyD^C2jma8VXqCU5~Oz{J#`77lYq+ zcri|2=G~0?==gszdf(0H!KXnRdt(Oj6BYl@LEkvqyAenj|9QQG#Q$?qWQqTapr!h5 zVf_C&;!Ahvb_=ebnT_{%5PLZP|C5RTfAoIoZ9<=If_^&Gdl|1sy!#NB82|r@`f${} z6Ka0ddlL$J1-*7GdXbL*m!Pe$#&r?1&|6LgayI&F7hEH84f+M+|EY*Rw<5>-Zq?{P zFCkGYpDEXxt{>w3|1q@&7CDQ$&`NaUDw^?@Q>qoj==W{C^rf^JO!m z80qcipMon}!ubCx7?$|o)PEE=;Z*n){vCKX6|Kh`BX~PAq8^0UJ|F$D2n@%?A70b6 z#LNbknfNmqYL3RA6_`X|EKtK3)+1V;(RY?vn9qA z#-CFX;?LE%?(IzI{0M0JBE%EMpC?TGxyrme%&3&#v90pEb!6^27j7-J8#Gm)Qj}dK#dAF&53kM=tDC)b-tW}-btWRgEk-{Z zP*Cxezr<0CaQu1)QA6~zkN=^^-uWZ-zg{r+&uz)X#R5>wJGI zdh%6h#Ufl2w%C6GZPC~7<{#=?{fzc6^IG~GzdXMy_!#Xs_S<-`!>-D|6G*gl`F}Bi zB$6{j@=Lx8X7}6Q+!yX=9-)W2`O%820O6lpXF&TR^WrtJhN4IqaR*}!|T<#W-P7B^<1tg2`fC$ z&wRLIEN9W>Dl@5RQ-d%kX$_qR&)M;h=Y{zv=Qrtt*E{h1m#k=WO@Nr(0mKz)+R`7- z?KMX^xa!+XyEfm2cTs_`&v&*wnH5f@WrYp$Dc7Ay%UT7I0s4t<;wj``T1Pxc`!WYA zgukp6TVC3UDdZ{-a#eTZ8BnsqwBgxMUT-11idxA6(@N>+M?A3&nU*cbJ#qS%^I<%H z!1JfH=CvVY+tokMqSA_gYzbad&;&2hKg+=L3hu^hSm&b;aqQ_FSRkIS{7el?tUu zLH%>Ri|78>7VQky3Ge*Q^CzNzp8IPK8|uIA^#yEUdg8esQ3XpZs^wK}+#Bkj?G)-? zSZ0qUXJKTlTYh?CUTMOskf_V%unYCim3DXIU70-pM|Cp7QK9Ad-UhbR zkm$bx{uzz9BEYMhcwLlSZNL;%7|+4_F%0(xH!Y9@wb>iCoZEMVU!E7G{uvdhe=4^r zT7&2E_=|Vl6~l5j*mr^@_0Kb^?#46NykepZ$NZIe@r>H;_-laut*|Oo0oJPU$F=kk z#)|sy3jc#})It68`T)^C&zrkjIebYE9_md%S*ZVsf&K^Ks3g??Aov)DUxQ(9^*;;@ zdqJzj>whrXqAgM#jJok0)B$KOo|$ipTs$0a`8ZnJ59^9k{|Ccr zK5}=rV{mM+7yfvM+%&ZFM7);4atX>Q`acjWrsKf<9PH(uQmhm){tt#N^*)R+X5<~{(03}Q@m559lq5iuWU0VHjKu+DTYEg!q`@lx@-xF4%|L(wfC5h;tT8wVJarT7zpMc}1 z8PF&1Lfi)$5⁣%kfH!;rQJLyo>&a!?p|5)ZgfToMF1J(SP5lbNreGosR}@WjNZL z3IC(vWhwp|U>%qGuZEX-_&W~eT!K<821|RPbq>PO@GzvFjy0VUD6b4EJ0V8@2V><} z^nWH&AC4TGVO5Ore-?TW&tn{I%5*x8_|C#N(f?6qUnA_X`adw}2L{T$T?+1(8vP%F zBX;Wlw4eqPQR=&~dU>PK|5aE?=lb`N_*{Y3rv85lrOm?1MRV+@{!fa@!PWm&Sg+rl z)Bm~PeLYg%ffY6C{|RX2Ea+wuY(oA24mn;8qzjJO>+1h)wBSSd<4VP|(Eh_XhF^wb z=p|SKI14N4*W-Bq1gz`b;{6eOi?FBE`x{DrIr5x{x?O|yxeHK(XRvblMvVR$(Her| zaZvggC}lJ_?uqg@g6$Zi|Dou6qJLhoGzMCt{`W$g7NaG3uO;f&N#bB?e+`WffG|2kTTzQM~2wdIi2+h}A{L|DT|Im!igvq2V*#;-hTW zqikD^{(&#{WT792J9ssG!|y6^ij>h!!({^KYu zgD;2&xkOR3rbBpxRJB=NtX3$mwT+(a(`l=lFG|(a(iA zlk|IhI{~X-KgT-n2BV)vIA0LzXC0Wh3<_M1^~PU<>0wy)YJ*z+8aX}`=;x>e{rGrT z)&y^$Kf~+h55l_NRd@i`gJ{+Jy-I(uPyO`pL;b7|^wZqG(Cg^`9{L%8_U!G8e%gbf z==MOaeXhkyAMj?Q%p1JdaOQ&T)7WSKs`TgiWq!5)2}zWeN9+P4YXBuUHzc{?Iqe%kNB2 zMApdoTUM`V#c!NtXW4i}$c^)3mXITav@VZCdHg9B^huA*lQrdWWR{Ibn9}l0&D9F7 zo|KxsVF}rWToaIub>Vzo+B07soZs_md0utSt7>E=O^!3@hc9l$W^TZm@oIO@|E1pf z{qx#+9t&6SiAf=gj%E$S!*7T@q5??{4IOr zNQhP;md`tNA?pg_n;NGIS!&5i^dc)C;Tjkj3;9UTf!??_$QRS_7?0ZEngcg!8-7ab zk!jYAEtX{?Z=wFVZpGCl>YoY;_0JYr;DqCl=& z(L&b7SR)=$%H2Mqt9*HIWlUB@xh}%{f_T*x_0Q{k`D`Jw&pVXD_HF_HtW7rkmtzja z7Hxqv?J-YpjbCJf^Pggjj=Tz&o7I0MO3)s8@>nqc)&lb{(SHZi;!NEcd4>9?7hV}z z0iV==Tj0D?C_HA#mxHX#venrt(ksa_*VeeE#f`tIDe8c&LMz6-EF1eGTU+`T+lGpj zyJNYYE^A+0DdTD+6-ISs*MC#Ab0gGQ^v{(CuHy2}7p_%sRYqci=%4p;@eVT{OJ~z3 z+n@Kj@QTd#@J#)a<4Snu9V>hiR6C>p4#YrB(@~(|4#}Yi2>=n^Jk9_iP65V)3KF`v~8349ZgA` ztBUb}>qMdcdHsJIc;-{ZsCYh?hx+GTH@xOQj7O#jiEq?@XVjdlo@@!Nf3C~%o|iWG z2+GT6QMJPHqUgUbO28|eheKh5FtcqAG@E{` z{s*FjEzJy`t2LdBCVBr0<9|;uE&88?a*Q$hpODxl8Ysq*QK9Um=zl7X>#~(U)c<50<4!}_78?DJz)@Xucn$SG9qQ!x=%Wp%Vm0nK zFq}>Q({PNicTWHFjs6dThY}n)9D`O_iX;2^M*qu^cQtC$5;dHOT(arE6H3BSmHMYn zI9l?{M*)W58W8H1EJ#{bT!tLVQUQuC}1uTbXo&jX?VKKRxJ zdk5nc>YvYd>zv}%Le&3cur(Q;J*@uhfru~|s%Zp<$Km?{V0%w|TK!MOdJwOg8g8AW zd~1Of3hMt*wCG42`R|2%jz`;9g5g$Rfcl?-BdcDpqyCRVU5^7l{lR{gjryl$2egIO z|1mgP?2WcL+vtA@@;nsB?jE#C{U41yCuDJt(%laqjO)iipM7z3eXr5~l~^$;#}Vo% zDCkB<|A(Qj({W``mhER)-(&p0FVO!B__Yik|A^~EXWf33oAJPL{0C;x|)wQnMd&bdU*QE`w{Cp zo4qFfwPY>`Sbr<>#`!IMw$CfxH2-8=_kIYj`|IwX?+^11^VvQNefFSs#!!DtQipSkM#a zg0gl+E3R?KiV=@+cr?rx5uQz@HP`cH{>U@+yn{b{0s&_sJR;*vjvGrR_or|Uz?w-} z!_Tn(^iE&g&)nsEcswZe=MkhF=gBG?%wWg4ZMeq8(lKY2S2np$fyaLGq@=L^yv~Um zQ-t;BbtrEAdB-}RlfnA)tT5}!v&}p<5Ff8Nv2CzQzf zVb+oJ{uYFdt+2*+=aC54$GFV4asWY#I;i?qt$)i-R6tMo` z?1^`W@fowMeV|len{07sX6QJiupt@j3;6J zd1b>8>ljj(^sFd9MD4 zBL8uy|2W)3#Ld>9PdI6dk~PQZ!6%(?P9^-?`VU6^2cSNKBK04Ek`Ke*bi}y6;Gg$n za&E_s_1^>aKM3`oiTdwr>VF{Y4l(#?LH(;SuCGD;m*O1Q45$7VVs6Cx{~V+98JG#p z#t3j?p#O&vv5&#nT!~pA>;GqrKeu9TSsk3KDnecFG4;O$=YxF2%ypPiZN$sge*j9u zC&Ta#VAg*Rw9fEc{fA(W@V_rwaj3axbr9yZ+j!K*5hxtf81=aV$g>pT7(|PtjmMJ`Y5C5m%PakOeFr14AW3PtpLua*hgVxM zdh=`spR>cOd$ZM_`O%u!fJq#evm3ltH~$*7jH<#K+h4|4wr9383``kbw3z%w>B6(8-l&zhX0Z9%GLSwEz19R%q<4O!#Kl#Ps~{IZC$V;Fa<_? z2mBw1T*rI7(vtiWN#8>L_b~jA1ph|`{Ex#GO_S3T1LZY&!v8^-XB~^#PYcXK4+sB; zqdn*5P0y!8@oLRZu;#f+9?Ovb&iG>_%C~W@-vX-l(Q4)3fp&6gZA-H`ud;b$>cIt~H1RS|Jl<-LJH-yg zbzQ>$MQ9a1pCCW~r(>;g3f3;J$8~>4V>RSnwEH!f!!7~;7ntj=(u)xCzX4a+@S3zC zn0HG5za9MFm!25tR;-i=|9=Aie>eR98TSbb|1afDKMGN%t(lh&H2jaq@y{7_e*O=_ zd~;&J|6bt#a2(z2Y5G6!lAoP7{|gNN2jcEX_W$$1|FxL?o`_Y}OEd9*Gx$FP`JRF+ zk}UrZV}0->oVj=_Z~ilJtg;p>LU$?tAHWgAwTAzf^QQ0R3;+B3yZM^`PCl+o^Jn?_ z9E`$Ifwccg=BmXNs{Q9cSNXPsuo5Tje*tQ7anSxJL)F>ZznlLU+U+Y`wa51F;@6_) zgZw5w+y4`+rsmroGUexShm`*-u*dju6IAdQTwR!NYwIt?e}St-{FsQNCn^7r-e8~Q z|7U`J?9oQu=H={BHXcRTU$z{a)rbd<@a_=?M?mi5^*i(+t3Woje3PqM>@`ak=Ujwd zIgjEiEKO*^^&q(hiR(37EsAce5$~gu=f%a3z~M?5YvKCmT2;6{7FT~km}< z&YL;^mSc(J`t#a`=F!6A7w2PAfBw&&y7lLsS*$j zIZ(qe$KYKftpENtsrl9oXY)!>hQr}uEb1?-VAhEB<$BISQ~!hN)c;;n|I32VFwl@=n71@OmeIssEd}9$V`F2M1^Uf5_GU!#edp+$aB|agK}pkHuBq(QTP2 z{~WA%^+f)sV9piYmgBt3#-RM0Q2x84Fs_7V`9H$*6_(-*%GY(uFaG}m|F^^c=XLxK z_e1~hddvK}{+;ZCpNzEf7mgi_(|m=$!*8b0k{T7ytd!if1Dp^P1cp8pe93doM zrsRqdSAfJn?fBwG8(PXr5ZBdBTd*!T=U}Uqiie#&r$FtSN}=9Xv6WBS2%JHEy9&bmN~j{ z4U4N$+?bAIS~$DlUaoqvUfd`14Ypl)+#X(i%hW8XShIv29T-XJmA}GS13faesKAbX zQnI?`qb;waqzAdHj@Q7kc5(%^ ztQ5+6An#ITX=QfE(n-6p9nwZs+`_3`e-|AqU>Di*3%dot11-9@>kE|Ch*w(B8uPBz;7|-mnzHEJ&AF;Ki2J#Ltw@EA@Z}cM( zfmW;`Uwjv>ur#zG3*5&)i8O47@Ws6n2gJ_y9_gc!i}f%5LT2lhkILs>=>g)6EHEAU zAr@MY5$>TC_tH*k#{Km{&9|%9{+g#KKro5KlUQ|-@1$wI{xu~S{wiP+-p9+TdwTa@vkXz zWXrRbVH^sXt=oR=onicAd$6aLBOT)fpIs2fKk2P(2f0I;Oz{d_-oGyKk5A#2d)}!Q z_F%Rl_wnomE!*H1p9;=DmhiCL`~*g;UQ6*U&bhGIvqCHAh^_1c1pdaYQlUJLL&&wutLGmyij(l+DPZr$NfQ7Pr>9<1oy<&dDgK?z2G6d!}R~D}Ui{uwN7+>Z9 zH~lN8(I38ZK6$xSFv#Uk1OQUj_5m9{2HN+PRnTow~T2sNNj;~u0fuQbT&r3IL5#+HHF>=u7Z*W zS&iUU^B>ne<+~N^dC+U~bNwBzw81rvd9MXhl?UIPwZbu>#$pj%Pq~Tcm!ZdsAK8qn z_^`gz0y0_JYr#FY3jQmQYxcZwEU;g$3!F&%-5Pc#k=)K^49k%_u z;*QII&EblnkpHL!&3~;BY74}!3DTSgD`^fNTm^>fUbn-Q4`DIJSiLZ2{_!10S~zW% zWl=v9`Cgn}Pn_IB?%~2Xb_XBTOuQr=MheV}&boab6M2Bgd=x)gjK&qAzaxS5BipO`tih zJLK|T9q55J!!K)ipdI?j#W}wf!>?3m{$t-8H@*Qxd*_!oYRYqvY ztO>5_LK5SgA|-}v(6ASb{dIhsi`(Jx>w>b?621el2z~=67gvp8WzEpPRl$Glkj{2M zx&8v<8i0hx=mlzuvXYA!w!vL~8@L@Tj{L`Ybg2lz<-a^gsSn=_fnR0e7iDU|3b}fa z2chu&3~qtEP)mL*AH=xwQ<#wfylEH zFk0vGU$OAtT!g^yPWXYeK|UOV5!QZD{tKg*v@7l?^kB077lx~W=xePF*<9s^{5KK( z%N;P9PX6N@%*k*SM1LUpZ#n#jp$pA_i_jMx%l`P(=G$wU|M=c4XY1BP+!|o7i8%9J zC4QHN{mESMiKRw=NryI;CGI$PR@XN*|8WK?`H!^)@*jKS_4m2FaLHK|)!;7&_xa?} z^#|tQ;pL+S+>sM_OoM%}M!~016YN|Mj0{8mtKYq=Lab&6Edu=BF@d?b-F$Ls5 zemBYFKlau)hkvbG@?T5fRrB9altO+zh3ioHQ0iU&D}bati5>Z`7eeX;eQ5q`4J#-A zaXw2Il%>H4BMD)!9l-Z@y5Ndmfog-RMi?>fg_PR-HxlXWg_1NH8Ylk^h^gPja5)3L z{N%ssD38Y>Cgi{A;G_`pVHjdP02uji7^G1fGvNAI*c170K78~=OlslIAXpr~Z!$8< zf5*cn2SM*6VQURBmN^L_OhV{fL25oMbuq#lix8*9;lE`Fzk>fpBL~QTOVE?QP|DhD zgq?)D-7#)W{^Pf4xMDW>Zv}e6$zVf}w_emBmg8&~a%3vBJW=MDlK*BQODT3Vd1~4Fs^<&a-%Uy>0-#~Wr7 zfPDk~YyR7Xe7OVRhv7!^-^;>(@50q17XO_i{I?Bn99@ajK8KK8{<{(R`8D|OUFhNt zyrts7J8bXA%s)O&Tf=UWk>eepou-IEH{m~iPoO3&$%i`?{MSQDHNS<+? zZdtS7T6FEec$)v3MES1?a-4I1IzgMw;4%}u%x}%~K;D!8cwaN0{xx%wUv0@mF7e3u z_x#2X`H$tQEplxl!VV#hU-3eu62*wNB!ji`$jjaF80mqR4HlS2p z=LsTyE2`kXkKyiB%sC?ey(s*5Ir4m~@ZS#Mztt!w@P;J$?-J-Z6)RMc|Hu$wNO=NlRt>}6SY}Gi$9h5^m-FAXG4t;YSi6ID zke)%A*oHCDhvDl3@W?Ja49S1*drI&&p60(7g#TW^te>Ybr^n>K8xT*M|NeXdZGS0uMg8y>WNPHE5{I>`8q51DEXm=Ri0cfx4 z;9a&1%D-VOK(vuntIzr&)wg$~Jox#}0ZJGLMEHx={yN6E-$C&a0ddI)cfDRmlF zcFIR;*CBT+_^&Vpy0mPlnPo+nv|e}CBEOxPUjFEhdIEWayZo6V34zB9fU zws;Dxisg4@73Ft%CFS>A__-T4b0NaN9~#o-_X5nOyAs@Wft24c-rFpJzE4Dn>H|Gh z$E>@xh~ZW#zkfr#W@GkLO{Dz>loEb>Y#H)zA#C{qDZl6A9_ue0|IUQ3*yXo_8UTx{ z1}*up3V%iUO~xA-PkZ(uR=WPO9vprb+$DKlKpD6JCHpx~J@t;1-wx^~tmCx+Z-BD= zw!~FytSg_Rbop(kbot#WnBxb1!Vr94*c%x<$N;21>8?LC|UTQdI zpP_FUXY+m4C?I=*E#CUBlLA?)|Edj`-2P^zZf;SM93;rBCfk_Z@q2#eR{$vayz< z`}%p7*v9@yJtD_mRQ4ZpEJ){8Vj*xWoAG6Tw-@Kha-Nu9)}nN*-SH>gpUwW7L^q~b zkLj}4PQQVpb2ZTrTz7gN0OON*{;~gFk9cuRj3KZ;jCqjQ#(q1F!cq$y1=snXc>3v= zJ!R~h((lLw#L`}$~RO+8?ZGJ^G(M^xWacv&K+B=$U(|m`l%hhE|6xa<|5>Qj zg+%`&QU0f)hM$8r@1e6+W2dG7^{5=wi?#lbgZ|lXmbm_hqjw{OJRgg4(-t*JezmYY z>SBp*$Dsv6{Vzb9;;-pH0{yQ?ZF?qatXlsU{Fn5974(lfX@Z;9{{^UZZ$rP-x$<`V zrAMg$d1%G6{JZ+U?FjV$0@}K_K>y3pQaT-N?8l+aNAR2IR)9J_^?!+!|KrfY>xH+- z6W9NfQT;!UmK61W{}Jl{BhP11{l5?GZ9$(G`Jer6iEW)d|GV|intDacMYmsc&bfEB z3*K|vHLf2X5A{)T&vmU`RD>d)j^KwrSs!C~{Bv6uY$;VpbI%#DcEvNgaeeZNzTJDo z-Oya$`lv%C9)Dwt$8C907O%C0ius6Ij&`TxqtDIQYrkv((YKD5j;#)pEu@OD>H0sr zF)mDp{$uzYU*bJI=T46|>9px{&KRLgTwiNFj$);P4lt+n_#@3UbQ>0^{bEP6= ztzRu$&$Hwm-GXH6Q{Q74oGr!B^e^MdQ0O+%jlLN(w#e8{Xfhyyr^LbKrP4v5iuhDz>kfV(Nx1TpcH-pE8&VN~LS2Ue9ae z>?7V`Z0Se4lP&Q@Y>9EpY#O$TGnxw!hhFwQWdeBJ&gqG!)Dk9m)2 zW;&Q|T|Sr=w(&WKH}UqpUf+N@!8FsNILD5;Mcd*Xww;-qY%{Y5fHIkW_60DP7#poa zZM*Ct(Q#tjw7%KuVHm{zwm;u+!1;*WF z4(2F(N0>I9|BM^gO5w<#{$=cWkMCSEH9SvrW7=sc?77hEm~j>`*WaQ%YL&X6_IXWy z(J5hEsb8+M%Y5U^M&`2@cNi1RFPu%qJmfvPU>^ZPOFVv@SH)bR6>+wcE~A`tz;trv z6iX*Z{B?X7WA>;pO`Oq4i>38ZBDKqnX=Se}XN2msve!YM>6urFmk)kFjUzJ*lXE%Q z7IyiMG3JZ_%{6q#`CW_`HKgZ@k^gkbWFBe$V?PA#ll?$kRgRirE^xLMZIJF0-Sm89 z&O+A~$F^|*p=vACv*)>L31_%*t|#9sfGR=RS7pHrlIA5FT<()$jEDScJDUI4{-_Cz7FPpj75vBexhvE$F8mH7 zXXi53T=`soGw?|Gk8>t#!Y}!cJ)!)b8P_7#{KqrRfBd2!dpok>O3&}*JGSH=rh_Hf zHxZU@GfDvi=qxOC_y}-<0FddG54E&fH-S5_6p2 zGSqb@&iP?ksSX$PlZhDALI0L!KD}~0`!D&W@Ot>=8wWg3bR+-qiw2ti_^nLNUgG>K zm;Y)bF8W;v_7Mg!Z-;%Bob4Y#Y-t;uZLRr_y5u*|_{}FWCi^sfa?S5N<=~GgV_#3A z8|NLm{Ks|k_|-G^*6}^!dbsA?Zq6*^d~Dhqzt_mOEcnGqu4u^h8TpL`+NS0|-AnC( zU$P3>cUkP?leV8 z8e9Cwc+?UoZ;F4sc8ne?71h` zaeYU=+tM7dXo1*h{%eXmP2k#x_>li{CGW^NbwnqL#jrKf$h5XX2%OE$ZzuJ=H$QnxXabj`CZCP#4;D@BL6i*9_7J>4=%}n z{0=}m?zM+KlIc32Ot3_;q;bx2d%2r9|FuC6wab5bh#l(}n*UnCR=C%L&YHm<`8BsB z$g7Df&3~M&M@?7oAGJ^$A?oj1a}pB>WeIkM@wunM>3V*Q(4% zPhK_TL^H&$1!Qs6d49*U0OdyWALsK0;g$BfjmCm*hHrQPbtWk;pC1 z%}>E71o>|it{Wk4nK;w+zwU6|B~kTa=1?c(Ndd+r$bX!nUC$GOwl)88oi5HfZHpXs z`L6@4Z4~a1|AxY6E4c56Sfs#r3T6Zig>8`kx*^Ow%sc9Zzs|_TVVL!z`EMLjmFPAE zA+FhP%fi<>Wtp33U?Wlm9qBe+u%W3+zkt zUsoLYZN;8&(H}kHA*9dczhRgm#=AWejUH@cE_5~sF-gHptTg0}=D!|@O()q$Vzg&6 zm|-YlnS{|C&42wMXB?yq1jg?N41{a?(fr5NH##CT^4}E1wFm5BD$+X~t_R|`Pr~t= z0!|?R4Ztx4qcG&Z`4~?a42?_|{=*C%1r}48NNHLa-mrf1?ls&3`iy z=LvWhArpG4;J;$b6(j#qn>~?=At?LPkQVaaV&T6P7{4O_EdV+YZWbjLIk(Ks2&oKW4l4PN^R8DTA2k1+>*F{^NZ4b5Jt*h0%q=f9D~eu0UMKe_ODR$9zN0 zf143z9%eoE!gmceqO9D2+1zUpzhad8BjLYQ!hgGj|E_`l9uWT9iqKvDn}^XsoB!@Y z{#*%r^ka7J-B{uKa{QeIn`Hg(iYWhWfeX!lw;;byMM=-bYCeyGmu@^_{<{+?TZC^6 zlmC{&z84{kr=ctE_hYp4G4LN}Auq%n=2O8VCqvTp@-2_;z_#IUJ6zHa=eica!Y)Ke z%gXuhMx^6$gmf=lZ^!SpM2iRJB3^)$C4sSsDI2*S4IMQ3ee^(tL|Ls7I}??Z6)Ql=I&^m_NG*{C5r3X?OYWOr(kYw*jdj z|2+aXpC_Du_ri8r|Ks}!75w)jtmzV1%7rKo-y^KGm`hIny9*=Sn*YAWJYMqOP38Q@ zmACeS|2{{o-va+V1Y3L^DfS};H{*>5^50cb|2xWmy8d^R|2(ke|G)W<;|T5_>jC!W)vptyD8q5Uz8SQ|$)+&_lnj=b`mzBtyb zWpf;YvU#mX0D122I8AWVv1e!;!{EkPa&&_-E5?s?3>Y_#Da6|JST94MyNdi_@2Vc- z)}y~1&C}_m4EK-cl+RRDzOmnnILE8>*cxNb@hgVGJ38JBop+fkj>73&(_@wlA=c*R zJ&zobU>_#KrbLc$awLbNHG2HP&41m~Nhv!2W9JWhOc@?WMfIo$^Mm@MZ=wvDV=i3f z#!V^X&2#p(u`l~bMg-}a;|3hjV!W6hrbPGNa{PdKsZ+$BE7pHw$6x0uenkMfSII{Dk?g$7yj=>6V1rkUOf)7;lQFHB+UvJc5>d?9B0`rC=DhwfZ{HaGhUdEWS1i!4W+@ zYN1C(*?YoK2lh9{E??~XV|uwV1y`uh^RzkYsn;c9?>b|v?VqWmMwxefcUxam8?iRp z3vrHHaAc70|LFB9I1-@8&Zt{$|I8h|QU*s$nObdAiO&~jk0$$~SexdW7hEBOBWbjM z_Nj2xlU7w>{~W>Noc78$uG~+n*JI9H&zAPjuUc^ogrkvMQI=zI%n^>2&|dg;3yu_V z%z+YPmtWWZYapIk2#ce~{DLu8h)G5LTd%Cc^=vqnqVvqPe|`%i0E8=K#o9RHrPtl! zh#kiOUHhjD`e%PGSLdmYAZY&_{qmw!s_mbnDe>%|v0^_N$1Sp-XkBvc6OLmrhqw|CzXujX9Qdv(M;vMYe5*L|P1}DEF>8rX z*xQwkx;@tfsgBk{LxfHHr^VJsE^_p=YWwF(2mE$NQ}}3(7Bw~4M(m%fg5;w8osL!# z-z_lhpChF$;fG^mneZQLV=9Bl4Sv0f_Rn4hKiVx^r-^IBw1PZ-!?zLA!If1s|2IW? z(r{PXe+&4CwKWo7LHKm-pYd!6iCm+i9kg2=?Om?O(gs0rO(TweG(?Nb51GuTW^wJm z4f=YTBQE(!Zy|i~TgwU(*?*jZw9x)LLmGQ!bJ3R6_TNVAq7`IT#s6H#q&q^cjgV>o zEpXKWa=M{?UI$^({__!1KKhR8qThw~-wN_NA_Xm>7fP%TiLo}<{)?c8-bgp?zZ>GL z?VsyX@cX>9|6J(Yk5~ku1FjOy6{7QS%`d-IW&eD`Jqhhju6aEO;py)Q^ZTq^7pDQj zq5Zdo^zOLoi#-S()b)grBHBOulLy6$ekJ!^`|pk(Ic@(%=r^SOcZ=G8kzxOR#QtNy zj}bsFYx^GseKtqyzcXSr8TYy&R$8P9X z8iaUq6(IKLHb$=s$2#VspRF1CZaX4v+WyCi{f|RRh5+HZTCp|KLlD_6t(~3&{H!My>wmSi*_+n>^~GMc-Vlp|8cOi5n}(V;D@6GOC*o`iTzK3 z><-Wkzlp+CMg{;af`rz{saeoYZ2KP$?WH3=%i;5MdbZ|c zB&O@KnL$Lol#s1F`?&*krxsJGhGs2E%|GN-UOXzGmj@{53X50Vs=o7Av z_n_}Cw|{=gw-6d)`61lS-;~IQle>dK7*@iXg@4|cO zk3zx#phb8~{RX^i|Bou||HX3qe-Ynqr2W5)_O6-S;WveBLHF=7b(b9;Gs7Jp;QQpv*tNjI9^9 zCn&yuJuh3gz*zrci<_-Uw$2jILCV*2e%aT;(DaAth2CXSy;*>}!kNrZq!l zFAihPb_`=dxw`L*E#LT??)_p94d?kupO7^#<)`d z{0cPn&;AhIc8wPTdzSQkV*OyJvaJGpqww8nEtu)w$?wtB+5CmY)j|e+|)LA9h z%|!ofxpEd^8vIp54pRTD6UN`t(2D0wzP6}~bN+PzSGxS?p?({G3nHg{sFO8Cem6%L zEfMb{)qe;0?IQYbjF5_?l~WHbtHkx+O02B_wN9;n9=jq=@wb+u|5nmJz;AiG`fmyS zcZ}~Hbwog1mttJ*G!D_PsS)cXI?c!i-_yG4Mx2`as97DO}-uK^RqFxX9Lc{$iqvINdH%% z{iMtPJj^3G68*1@>VFqzL(M_?r~Z$J{&%8n5q~=urT@lq{XYXgXQ8cgLc;og2&=5k zLwk(npX&w`qgC_~W(7TtZ#Ui_Up(S`UR3|PFazWc(f_G9zKZhCwb9~jUm&;ELjRv( zzQz;C`3te~82Nu5T8BsVA20XZHb;d!g;U+0aPR3W-q$S^8z<_vR9Ig=+&}&CN$&2f zW9ra|xS_HB#_-u@;4|6Xc!z(i7jqn!p=cS}1*L10^=IAY;7Fdku_nzCSk~)x-QI04 zxh{BQsGK*>oi*VK|E!bi_LP3_R*$Gv;H-7?dCPhj1W-t4${N7hg=C9SEFR6pW{S)v&szL3m^4Slc)}?Sv37M%6%gs zsU@1}=i4xD==??l+cM3g>F3(%X$YqR=L+)tf{2-ZceQ(l&aWHm^mjn|bKswExm5TM z;7(^rKUb@-1NY4=3)Jb?U!16gUS+-^!g`Gx0@L3KJ!%=K1Jno73(RkZ@1~#q(arE& z<{Iu@%6&72HL=G|{{W=73!W)j|KlXKX8K1((?1AW=m%GWkryM3@OAoo;Q8JGaT|?# zikEDd>ud~vB zHTs@S{p<9<6ixpl=udpvkpKTW{ccY2sL$OyxRKE2`eZMY4nwnOV&Ukg3j3sVzm)sS zXH6oT?w_GcEnWAk@%+%|SmmLyb+2PhmgX7xm(MBv#H-v_#a-R6!Lf0sK+nRWZ(cD5 zZmw4Nu+R9c;B$$6QhHVfrL$*8KTB=bhhH(i>{Zh7Wo$UVK|hNV>7(M4S3i}RdOpE; zWUTmPir>S;SvIE5#V`s2I))IWRKm}Bhk;~E6)so_?2InXnF_{`?) zBj!F=$Yi=%XNbSiHESm9O><+;8B<&dfnU^$w{gY}S3c0?hx(^fju$eF`1#NG$7|sk z#n~@xEAmZp_K>lsj=%9X)>$}9i!%A7qXyZ}#5dx-h+Djk^&P(bN4H$1l20M7S3s@Q zMHulm&c@*!BH9gOqV>=D3jql$p8oi?IliMt{pTPB)PEhMfcj@n#PhH9Umu}x_6_yV zcfnYL;;f$d8`lcpyS_pEa;;2SF294pZ#pHW|Jx>jvplWc&Ht|cPlNtX!^rZ-HFO^I&siQG^htRzzCHzIz=P5C zBh&w#(EpuC=^3yY>VGP}%TgWvbj1j#>MaLrVm8OPeLiLkX#JmpFF&lp7(C1WuBtr) zwe`Ok{$7mg|1rF0R1(*JC-~rdbITEnEy#)G*q;;qZ-FhYhySYew-N6j-HFsbSg!x; zQ2w74{clS^|JzXFZbtdvkNz;~{}c4fZGryFkg`9a!+6{O8vWm^Jdtyvx_Ak>;+h6N zKomK#id?!D{f1^e|le---;IDZZMO*nrY$2YNW!}%>Z-iG75 z*e7FOg?ORUH9}%|5c_91KQ@Z-cxLpPX<<6(z7fJ;T6xVh)sMO#iz7OKC9KnM4tER- zA2ZQzAtN#y_ZTLR+<9-Uz9+Izf%}heFDfT85$D{e=w0L@Jn?%v{6Rj$^F(lro5yhX z-?B-q917%-dPI#Izi2mkanEtscvZO4XO0)m17g`VYSpe=uYOL0hK(8rn>K6FGA|mr z$Kd&INY9hlFT?rMI6i~@O6<>L&%nLv*xyC6k>{Q(aIY5j{_sy-48%R;q2wp;568|9 z1nS{F?66g_O}aT5ZfU#FJ8hP3B15s$5B*XP)GOsg^$b@DZb~u+`GNGKEzeXlkGzgo zVNcD-%&Hcs&MLaKMIMB#iy-q6?4>w=0>|^QGYuEx$hcjC`*$O5_h3hQiOKzLIPU`t zc_Vqie7X!6ZJhbWJX?b!%lqrtSK}ORBI9s=gqvs^Nn`r3A#q5Z@}~IHsvgCS>_!|O z$No0FK7wOM>`!5bjk8NCa%*DeRY#YRL2SI8RoknO`v!LC z%~Kjp&oz}CU41gW#G}`T2MysOJsDd{iW5)%LvVi~cBD~k9d;~bBYJJvGBkujmvo3k zx_=b+XlslYciNzPUZD#o$w~1g9qNBOtaLGlO!mZB@9f+CE^hJ%hHZnRFX{+G^3x~*hG8Y9o*{_{A#fSu3eHn_&~ zUFs$+aqN%leC(sJvuciA?%_HTz;#_5X$N!z_kuGF7dPFru0;0;GlJ?Z>rRoAu*1J~ z&3jQ?!gH@(d5jaouf)F@KgNgY5g7>24a-eWxql-*jGx4j@*z+5Ox&x6y{b+00lhf* zV_6cKr%vz;Px3+;N!XkumR!e?(hJtYzc&g0F#=u;`AdK;!*Mx|#n@Zpoc6pB$F%76 zP@HqewRJB6yfXJ9BN|@$xp7^7FNQo5FF&s$e&uc|i7zn=Pr)^INiVEA65V+(=Em|O z42J5apTN@h9T3AA1vAvz|)Zc^vnrVIPQd@?{Cm6Wx%e>{@l|J5B`OMMj_CT+8sz`)y5cYGiBKEO_UxEnj_fy^hVt6h#G z^NRkMX6DuL*#A>oG?{!VCZ~V{GBRt|uPp3aaPtzx;Zhtg!%q7}nk2qMaDFS!$<0W+ zt3OFUFmxyC=REbg7W-MaUXSDHI3it=N3?yUE7BgveC&U1bKnh6nCV)WK<=VVu8#eK*cu$C3FFe^Yo0R=EjhY=V=m2=hi9 z-8>878oYtwcs=CK`{Wt&!znn<#Iedv1jm)nJ{PgyemE8&K$bQ0$g%;<+W3UWF84me z?-$sUk#{NB&%`{g`&fj>=iYSe3$UZi%Cq|=95(~k8!{i8{?&J)zvX2N&kt#P z=it~Jdn4>k5C-E4S>{pdZ!2-{IAD51Z1LQ4ugoL)9C?c_KOGJnMH*nw#C5HTqsVlx zQ?>g@MSut%l^Zut0J~dcFV5J$VqTnuo%zE2c@Sam#6Aw^6L6&NVFMBu=mZO%>ALvK zIKmEu>rf84*)`cpGEFIe5Dyk?%_D192d zZjC*R9UJ9ymnLmR9%%58U)J>{?Z`WH%1XXUJQ#;O++&_HUeRmjyW~HycGwvY>VtBa z@7T0#wm?ziPjdTBGf;#>E5yQ@_#KOVGHi1o_OU2STvTy#WI9sZ z?=WkZAX&AQ<^^8+LAnu%sHCDuL4?!sb3E0`k1ZndC-?BdH(bF5@1X`=O)SfbCZ9{F zg3v@+Id-H*?7CMpNdMJbRtQO&WWPKBO}lj>4v`{kzUXi zKGGHmMTR0LSTf3!SsrLRFm+C(0d&#?f34-WNu*7rv1k+Skxyo29)q*c9X_*xRz&&E zd!kXg24_pjQGEU=2vRAT{-hLto$7Vd3VQSo^=CX{ZsI}2(kHGmoD?T1E6tbT_)@Y` zz21N?GtHM&BRjKpR(iFJYH7aI?9}SnS=DOQt6Q&bt?IS2GiqeltKGI;hy22#j-5Jp z>DsM(&t84{_KQkng7EM4W@RXEve%a$$n>QKl4{nhp6ySsnO>)Mtr}^yYt?R++cK|J z>o$Cf*&8zsbeW-&lF}fY{{8+;L?A1>R=tM7riWFTVAmNLfk3TVwQJX5?KefGrLk^a zy?Sa)12g#q|D49x>;Lw&@y8GiVtQzdvfu| zM}s#lMJ4%BP?CKa$@oc2X8XdImY$iMnw*iAneKxrre|f>uE&aFlcu??+q7-hKEI%_ z=ukNlI+Ex3l~1LlCi{}pQd0ft>FF81bYCW0ESafDMV-3!bDEPf7!l-w&*w{pqfFFJ z4+{}_<%M~n*^`lusemMI$uyrIt)X;eRY50DL6HY>8M<)c+<7w>2FC?k%t_PXv~S;G z;hZJ2XUv&pyl6%H`Moi3vixT8i6`Rbvf@Q@ zpORNCE}j#NEh7)kyUtkAI;iFMTX}rj!|sfmyS!~M=-ytqaGBg#i5mr-XRHWL3kF*S zPf7F4oV9q_isD7{+6IdcPrfG@-Db=(Ii7;k6>DrION4}q9YRnTxNR< z1{vj|LPU8a;@Bh2)1gCr%xf{H^|WA{ zU{OJ<-n~1)50ha;otJdxCaYC2w>&2aO>Z&hSordIaBg@*iipPWsL^t-VnB56ZcAn$ zY4DtDhiG|l-SW6(hR&x$iN6nD)7;@XQ5S40$9T6}D)XnvNB>8;4sTX}Fy zIdbZ-0NqFlP`MFwj0RRY+NnykbCqb9D$%Z0qTQk>bWnN33i4eSG4O&oxNH2e!gn({ z7VhR-EZohxSh$;av2Zu{V&QK7#lp*Tu=4yVjFW$baq_P)PW~0f$-lxl`BxYx{|e*e zUtyg5D~ywWg>mw)s679oG*RV&HMvMr?6+e70Z!46=IM=nD)#w&f*-Q64aYu(x3zor zxw%!;8Y(&4kKSR_>)}XO@T0!j0`N3y;7d@h&h{YN!}sI-8SN_qkcuAx_e69}ATI9PHyb6Z>ZDY}cc$ zFXOA9;fQ{cBi>kESlfqjN&B4r8cgd-TvHe98!@&B%Ol#+(r3Yb4Qa_44(wAb%M|G) zt-k(f8xKM|a47N$x{k52_1DLRywgnBQa^pVQzKGL) zic>%S?`~i8EN@^`uD}0T?F*@|G(|1qX#3%4`{8K&;b{B8sDsC=!W&L2J&jiZj~9MC zyi%b@a5G-~;^DEzDq^)C#vC$IF=lq$u?k5|ymrJP;r!K>M9?0gV7ETUGNj8tI!Y0@ zeGzS11W!8g#Qe7WEs$T-ru8LG3VH-l@#p5&0^zBku-#vE3lLCTNU)1QBlK^#iwiGe+Yjn(oTmFOm&ajenT!9%-Uf(R?XyyfB}ozdo8J zyw?6)c@^0KD5gJT)gjHLIQ}Gtl;+BlVJoB${wgp_o^~A!>T#1rD}oq1X}h3e{G{!I zHoXd?gD9?BIT{&?pr;ofi>R83hG^V`)++3d{%ELh869<*y=n!=TsZJj&^gZtGB|yK z47FJH7WH2c+kZv=RN)`dHKH(c&Kw!|f&7X>#8IBV8t*m*Zpd+^YdUwN;yQPXW?cT7 z0bMH@9@Dm0^*C7h5JYAAHk1|9USQK0o{QRy8GoH`Mi6$smFGZyMe?omSFO16?wY9l zprJi0ALFQxs@3$}iu@Pd4oOEouVWUSN=*L{{{;#AM>2x05g%d?N05+Mgza`(c-;6U z!ad9q*ZpBSjcFDZjU3|NC`(oOH&klKHw-GKXUit5jDH-PG~^}{>BDT%@Lv^&9A<=u zzazH2L(=<~Y|oINXuPHD82$`B#pAxpYZv8%n-%tV1VtcbkE=T-TDeenM6`0$9S^M> zbw@)hN6Y(qsGrK6B;H@<<};6frA!{~KN0grnKsH~73nB{sKiKTIS<9a%T*r(cXb#m zA6+fR!d*Sa!d*?q!pn78dHnvn`|ZlR?PA35e^$R8?Tp*e{yWS7I6D4+bo~G5`2W%I z|9BmChu}v#{$FYTUBw7~Wpj;%qZ8`Cs|e?4|DD-ybF}}?!+NQiCA>b`f5%)n+J7gL z#Sd-rn|&`v50K6={Trvz811}|*Y6mw4J-8LG36fZzpJX_^=SXyjKlh#$~z*D_TL$O z$}CxKxjL+`h!EvJYE zFc=m-a4-+Y$8j8j<1P0bILOy~>fU?cAeJ|it)@PB)XC#KYE3}pWcd7>lrO;he9eCh zWVDXD;h}Q(`qc%xUvk6#gFEOjD=;Xl?yzdK^^7*9QPvJI-PLR zH!Ey* z^3P5glGSycZ)8?zVOH0^S^0gl^7>^3`(@RI`+iw|$)~o+<1oT;7|zk{Xbv3BfulKa zGzX66z|kByngd63;D1IA_(GD7vJ`!E6BVsqd)#A26qui^-SKr_ZkN{TD@R$(2WNpr zv*enu5OYJ7RW`1*#I0@=XI-0{i~sAuL9RUKxxxwYfUoQ5t<)Qmlj!UAo}G@qb|>iJ z)o0n#qepi@5X*d78&=TL+Y%i=w@$k+dfROm_@dW!qQ^B!AvtsJhojeSyj^*zQTOik zfrC0dp{VDOi|a&?&z&CavU+n>!~sWabKezg8x!RHB4z_9U5C)Yxha>ToW45GbFC0(G}DEP_#F7_#ZCO?xhhG)BVPiT=!2r zq1{WPET;QuC%f*uJ*nNt3g3g6CrLPd^&u9$QVvYM=R_<*S4qO1zoEQ1&AYhJUh+;VH^=w?E zt9x)UKaGp}rerF{cu87EWKl|Wxmc0*=n!1gP&&}T|rMZKMw zRv#RcQcvwfXzS9N_;ArsJ%@{P)1F`ex#~$c+mv=pFI;p`Z{gyKw535@@N|NlV(CvffQC%53XY+(W17xD=uCE3Jek#P3bXhr@$9pn9gd+-*RO3^9%ms>* zYkc6{|0Ql@(DP^RU3_3}Jq*aV;5Xb!^?GXe1&Zr8aVajdkOc9c>WQU1J=viPA zH~l{|{cD@yPOA3>*X03*e$yl%>v{>Y+d`HSSwC5jw=IM#&iKw*D#!;WB682heUY2# z3G{(g`Od#uTz=xZT!qU(CXoy87i6D>JWgcetAZRb5efY>+?UYt>Ej*M;PTSn#ATq4 ztAAVu_6C4lRwG69Z6TM|269C^LB?3feYrrc87#;W3%P>Gbu$IoWFZYvqT51zg_ps<;f-ji%~0*X3uf%Op>r6ByWc z+i&7B;<|j3E{}&*XMqD<>0N_xxxE?gqca0R6Wv+fzDkXC}npzq;oex|k5b@>$>ND7+czT^s|ok5q6 zb`zKTT$eR*DK1C3F2Nt4^nlCK+2S&(el!KW>9QT9uW?;A_5^+y0GCg05SKyM<$PQQ z&H!!tp57)%$Usk z^*TXDSjgpLfwZ|skZ~3=6HM!G`=B6GEabjAK-#?~$Z-}jzAKRSUkftFLRRCRze6$_ zE~(xH7IFY8^5-`eWQm1%#sewnCdeuaIlnHD!tsKfY9TKoH~mE?3Ua1}Y{>)C@f<H57OB^L57?AhNfHJy2IvxPj` z3P|^6g4|&t4Z8#B(MynfEX3OyNYBZF?6i;vQF-zAS}Mq+7SaP%N`LPQ1bNCrb~Xgk zXR9DDSjZFCNWY&1`M^RhC(=JNgL&|Yg|wXnWI#(n zzO<0tC=~vIeFgc>LYAVK_y{4P;as zL7H30GE~|8qX!Do+Co%yAY*0-l5Zgs8SAkp3DVg@o@okX+$Dnaw2-qV0vW$ukbV~O z6dv6E3C{{L#6o_doQZn`8D$|Wm^+jH5M+Xd^g!j#Ke-mTEY&;BLQ*>dnbJX!u!YPn z1TuA~Ajexs1{rDEY(W;9h;ZoXxG(JKm0vs?H{y=}*h|EH#C1O(mw}b!(BrlXQfeWy z+X9*KtRS9-QM(a8+sUEfJ%WTRWc3IjGyf1IVj(Xw#jy&i;|k^jaWzna_Fjtf|OcF@faYhy9nZGX3Dvf$eOW≥^#IrO9xv>XfBK;-20 zT8@RBM-DyZIxVNUDd$U+TmPvKX*m}153rj5v^TUI3u#P0r+=&ESV&8<#2G%+gU}jm zVagdmmWVVFBxE70$)Rg|2okXn6cUgB%!z`OTFBVZK-MkRa&k>M=aWOvI#0{7kh+Mk zfBlVGj)g2_tj~T#%dwD;$f4)Fqvfjxb>d7LtX&3IF*m z1Sz$U3z<6?^by39XUZ8*4!v-yAR!BBLJr-qT+6YLQwo7>+@R%HNOLmMMccHTR)!qm z&?j(Tv#0#xGx9fq)%+K~Bkn`4`#W$MxF8?MB|qqpT1P_?DVZ>dpR?7%`kCx_nJPLN1<)6d!D z(Ax$J66#?hMdZ-iXA0u!X(ACaxbWZg zyda)FCUQMFbjPQHlv;>~rR47Yf?lqvsx z!v!g|kYmUa_sH3v>bUdN)BzEMyNk^o{X?cqW*B zYK{c*=81xYZ3MCMzjclvr4~|34t@K2L4p&_(3-Ivyz_TKA{KHpIp^KC1SzwS)op;h z_q`yYNoHuXx&!$~Dr^zGd=@f<9QuAUK|GU9KYx-#KjFWU0EX&ryg5cegn`;NE_JV*}Rf07`c z+0l>$*-8#QaETyc3;CWLdT_fSr6!X75INMNo)aiI#|SPv0LJz!^{GG+3);$(;HU!v zm08dmq*1S`2irmoV6GWp$M%4dR7ZhIENBXeG+B)n$aB2ut1h36DQba0VGC+WD)p)L z0+m`&b8648N(2hdGXrcxGEG%~7bs#wWYaYDwm@YT^iEGe>FNi8Li5c48zG^&jere zG6P&ner=#07O2F6y0V}&RPPAnS#0|HCt0kK`ca^;1yvgisIkgKy$>xw3wjLp;t#4k zfr3lS03#kiO;mq@A{KNdS+=PwuQP& zAkQ+>S1y@0SG^!m*n&PI)wWc71uC_mrR3T?<$-6={c zyQ^meDzl)v{Q&h)dj#^VHq+IcwA)ktDNxXY{+$P?m#Wi(xe>CUex%*rs!*V?1qC|; z>Z3*q6tST1NV_35U!W2TDk6dQRqF&QwV*diPyN)j0+m_No%GdTJtUB4jhU`Zq}>7P zO@V?Iw2HJlP<<~@$bwpvTL-DMTqZeeL6@^KJ6N?4C}KfvNV`K+NT3o6;y|>2sG2TN zsRgZJx`wG$0+m_NG0=v8xY{g`=Oi;-X(Y7~>JEW|7F3tCJ5oI>P{@M5Bkhh-p9mDT zpnsBfN2~n;MJ#9t3(*)=wirOboi3P17 z?M_wcFnzGU1wBXFou+aHDzl*8;1d6I)mI?TDQ3FQjMAE$DsH?ksgcpfU?Oi?lmi z)oaDv@SJL-OK7(v?hE1iUE2MV7IVDfq%k~6Tn~+Knf)ngcb=LnP}qWABkj&t5rIl9 zD2KFLtgaTQ%z~~b?JiIc2oyXm8aa{Go3wj^dQHo+pf^an3l+N&Vbd0*(g2;Pe4q#P z09a6%w7W<(6)1SRDeElK?qbzTps)qaChaa!Qv@oppoyg2rE0mBWkJ;tHUBcTQOi2R zlr@#KyIkF>Wm(V|)^=B@r?e~!O6~<{rTSRQvY??P&{gVpEh}Qm`gItf)v6X;qZSlmId`A z?VhF{)Uqt-6Ca?{)$3Z;nWn6Zn65L_w_273Ehp_plpp2@+pwS}q}{cunLuS0)Pb~n zrs^$FaGfbDc`~4NYN|kC3sR|o&QdG1EDH*=5Up42MS~q$&~>EUv(;@{)>)>k^GLhr zsHe3o3#vofJy(@!Sr&B0U_j@oKeQ|h`ku6VzN+1h(Fm?LW$hsCUZ4sD3R}?gq}>bE z2!Tp0h+oO}Z&33DDzl&qNV^-=nOfG_rmT-iyBDczv@8pnMB3e?c4}D`RFe<9&FT#; z%Yv>a?Ov?D)3VMnWt~dey+oy=w8Q2tC<(nJ{!3MJfl4gsMW*X-s*gZr7R1T!{>#)f zfr96nvOY)#bh%ooWm(V`((V;%la^&dLc6!)z7TGz{DNCs4TXoR)#Kt}x9j0=xXcdI z&bFuz1lngoAD{^MuTj4W6gV#$Iq|iNw0o_}M&ZMBR|_hjSzM>u2{gun&L9Vss38I^ zv7ol(pzGCafi_uCq#B?b)ae54u%PVvfNoS*3bfmTZf1Ztsrv-lXF;v}fVQev1qz&R zrfVLH@y+Thf$}YgO)UR5m5j$!s&|Y9U77*t78Mj|i3N>j;lEY&5NMMHm1F|CO-&ML zhXws!4bbgssX)6e=q7d6`&pJ-vTYMpfid9-K}aAFgG??&|tF3J*vGxJ1l4(8Tno{RG{4!hCqP}&2%*w4(I`Ol|cCxRGnIWP~9)k7z+vp0qs<~1zKW3p9}%?kosDn zO&0Wh3ZPvorI1P9VL?yBUNAh=M4;Uk^c$Zv538O6?X#eh_>6xK1{PSkTuj4v#A~p`kAeDx~#3p*|95hXu{c1N5Z& zO`zQt)Sd?Ll&XnCs&}6SaWabkY1KiXz(zA&U-3cyj2b3Tz6I5222x&0rgQw1uup#7+n_&-#a3lzTG^tFa1{3CUbK%Og1XeVj+WA(B?B^GoR4Yy2v zDNyK2)7K0tWsmZr^8$4)3mTpd=o8gQpvYCGub)Y~pQ>&G1+O-tiA?}~rX~nfYC)3} zpuK9bK;bQ>ughVU{?FC<0(q`6p&8kLzEE2QDzTsqq}?x7sX(D?O<%zYfc~l87pTmF z9w7&PrG618a-Hd`CyC~3RUHI|s$Yo-^`(}-QEde(wV=)r3x%2kDzp9A>l~~YD zxby#8EfFYmi|MPuWI(^E3j`{&p!;aOzpI-Ciri}Y`gJs*Kh)y_1#dHUo~*yKcKQvyFtVM4ioZG%Li3Efl4fBc5Of&XNW+d?WV6;q+R9A z7O2dEwvu)o=X8N0cN)HgcCW;JAzb}>L9!=1oAreh=PvOOyesNq9WJwfLsiD_b6yZA zY(X1Q&Gq}8y#ke3&=(|{RL6t1D+<2_T{Rw1nv)|?aEB>t1j#zx=`2v#g7#1!8O~UN zN-U@Y9}Jn!LM_XJzCjn9Kg&5s%evc?H5YxA{%Xz*T9yU@t7TcxEtJ*Nxlzk{z?3x^4OxFP=TR-of;brOZ|=OOWm(WmEJQ7wpS3It z+Qbr`>r_K*!2S=KvZ|AVS~{%-3R_S=K56otfdZ9S(EWs3IbngyET~BcP;2KDEsMm6 z%_n8~cLk`8bD5T9LB;gd*122DvY=1;18V2Iq-9yqQ!EbcoiDVkhfG-+EJPg~2Xqdb zw;(Sn$Nqe$p+F@T^bnuB1x{Ci$}H&YCV&c^@d5>RnX=wxSuS!G2^6-VAQ_;ebDlsY z7W4?)g`J$6v@8qiz@CK8&SP5E-%VM3FUa4;`G=NeL0)Ly-_`k-mSsXhy8+bXbv;*p zYk0ErXffTLTmWE6*Te7dpIwblk{%Ab@i0s5;b;s5x{0*g(>X?<;3Fn7PMp}puWzh0)pK&2Ms3<5OBSs+mONz>OyJY)K5M%o?W zWZ)hO|Fb4Egc&u`X(>>t1x;pdjB@%36n@V1bscGUv~#RLp65;I57O=!XN^E57Sxfn zJJz{GpwJ7ZuailI;~Z8LV22j8p0qpOVMx%|i>9v-X?KG2nLxppOz0vIf`6iOP@qx^ z;yY#jNlyKK3^4q%>1z>bce2w-AkQl%bWB4)Q=BmZl~~ZHEJRbC69fvqYWmt11T@V# zTc9!v$|LPgcdi#GvfK1EmE3xa^RPg{*G%YTLdQDq2vll8-Jp5@an6qdgEz?&H zX?KousX)QEP3W~ofaW@P2~=u9*ERukyz_!U;de}5`&gFeIeP{2ylX;TNxSnM4?5TJ z__v^Y$x+2ljzFRJOkaaZy9=Do0+m_N8>HP6oUsB${$cvcA?+@7777%6-++X6&%u2m z+$8z+d$N1eViq~qh=)?w1E;-Yw;=5BTv#sFI3^byGOk?Ct7Gh(GPO`xy^)hC;*a#jjd zYC)H@0JPfKBv9~UGr*_VxLf1gE>OgR?j`M>>nYBk z0+m=$Cqkz>b>JB#VUOu+BWd?Er%<4<1@$EDp6-kksMLbqN5_Nz3}?PT!B5NpyQct( zIO_z8SkMe+)LQ3Sfyyjs5oz~K=OKYYpPB(aK-yjByeUwL1-)Mc=q%@ZfjneHY(6oY z;Y|UpchXQ~!FLw4nN)bT(?Xz93)({3J;wBYCy?hW(^obMvHx$*E`h=p^fMCVzsz|{pi&F!iF^LboqYlYzcvFbBJEz` zq{FcA1ht@ll6J3jas?{0pa+@&y2|M*Q0N;oKz}ZvtDR#6DzTt3gtj=V1@e4r`udi& z-D{kS1qxfxjATI9I@<**wVQ_;3o4_m?M^R&N-QWJ4CBAknIce`1>IZ=&|S`QE$c^9)(Fz> z4rim5WkKxx^xy5=s%2Twy(F4@oTs!b3;L0?d$04cmi3b39*T9ySp!rJa5&bL~Y1$~S=aY6zo!$b4EocnQ=5dG9R*;7l^cHFN31@{sWfnAvwELuUk(TwVDeD|^ z>r>8cT9yUvC-k)Qw3cN-H&h4oj6+LBx-6(4Y4=&@4=wB8rmVY3yU#hbk;^E{7Sx)w z`@B;iP>BWI%kuStGeV#;3z|UMebJdGQ1CZX)^O79OU{{EmIbNCfL?a4(XuS)l_r2* zadv817Bmmtoc>pxH?*wZO=3sh!7UYgAt zP9K4Sf0(j{lXl;9rU?|bpas^sgTfl4jti}rxtb#51^%!2y1 z1N5Hrj6j}0qtTE6eF!(q29n9YK2BEi1z{3%e#f_jo*KXB^c00Xd~7ho^`51m4R zA{O)_4d5eZq(CJW^f(FjV`siVr55xn>$PRhI)Tb;h_d!L*9zp>Z>DPk3HB4`A%TJx zw2!>;sq>~lAqy&M1?V&9dx63hbbyAv*Wn~nJpL`{1yaiAP78rbEGU(<{Dl(|sMLby zlVHDerVCVNK^sW0|8!Of)N4!zH&AT6ttkvNU&c!cL)@+poeP$`o?)yps)pT zuDt(S=M#Y<7Sw|o^_{a{pb`su0Y$|By;Bz^f-xZrTF>0r=M)K4Wf);cyt@kJAEP+B6bUg|7XXiSB!WQ&YKS2L-I9&(&vY>B*fPQh_ z5~#$2P7DD0)!8RdsRdn27X7!AjsgR!w4hoO0sZFW3WV<#80p$o9nkMiUx9)aG>ruN zhjWZTAq#pw1n5s^wLoDDno2v|?_4ZU#DYFy`8wci7pTO77Ls5OI?oAIYC(@s%O3Bi z0+m@1-){0N?*V~4%1qbiO#nIGddL*;h6Rm=z4*P}jsk@&C_;iw@{SfLY(Xz30ZR5R z5GZ0npAt&(uKz#noe6+kMYZ?u%ne~6Bupj=gw=+y1SQGLWEYT5SVAC>Aw&ffyC<2+ zBFW4+3kKX8QCU=8RNN4u5kW=KQBhQU*eWU_YTVH06JLws4#p??_)y?GRp)=YyUwXQ zlTY)#58p>Cnd#p-b?Vfqs&nfubIXg$foQ%so$PjQ%jk35QbdzL8I^zW{8kIowWG9LCOWVCD z*`u+p{pOQs|MUzm$_JurNUvpPy1|P|foS?cBsw6yls#U4iIcHxmv{zsq$6qF3%mqC?V$y{Hn1KE8lNho&ub51KA`?Ach?bsZ#nRyxaz z@`326CKBb+=Xp^n5Iuh;i4IH8^P);1I@Ja0@N}5#YH6(NK9~JxrT@Zp1)_soS00hx z%5?>zN8I7$$n+~*S0MT=rK*;r(kj=rS7TjA?@6Mg)4y_EfoLVIkXvS_`n(HB&v0Fn8tXdVWv+SY_qeV=^n@Ex?dc<2S0Ea6;q6HGI?s>!K=imv)}84Q zUX<+9SeLtI(K0_h(TnndsBadD7NqBUQ7I6;|Jfv3n2vB=foQ-D>_zEzu4{5*UH$Ix zzc~Fc*AH_uL^lx0(l*YOqcZuk@bpP{RH1dJy zh0ep{(@rlcHH!SJE6*hE)2_S{vF*3dr2@;-^}fIdrNCnP+BU_lGEPok?M1f-B6o;w zIW>K^7gZWXzM9*K`)cH^VQqW6akMhM*B7Wtf$Qn3fA#4@roe@61$lb?mmWp}S`|rwKf401hU3EmboFSi>(dvdYkYy+ zG`MsWef2eLH3i-?kqW#xz04OVNr4x-0(k@{*SuspymhwP?r^1g(u2GxFCtgU`?ZL;_o((4 zK({)-Hl?e4fua=1(O2)+MpNKVF1DM~SNQ^?Qs8X*+Sco$cwzc3FRF^j*=qZq^J`1` zNiS-j0he7V@7K5J7w=c?5&0|Kj2%dS;R_U{z-L?m7q6#Gfwvw`1zwiUc!>+j6;j|g zq}TTK1tc0u+r6kPB4?}ZQJ3(B(=)v29uc`x-meYBy|&Nc76|=U!BCe-BEZJ$5__!M~0 z0>wj6!!-KpYdAkFK%McTy{W*P(*a+gBn3`(1zZhpGzHeopaNH?H~IqGrND?Q;M(wc zDNws(*J$)$J@IzO?)o>_r-)OF3V$${v z7o}^`1-?L83bfEyU&Crs;3*fSx2L_nK>k^%VW}(NYA8v8+7k_4#_zktF&+I_gC^5&2S!U28s=e#483BJ!o)V& z_4V`#FS<`ezSIv~biR?!>~$VjMdVAJwv0sgrSrY$Zz6J~`~WzMxc9iW06z94D)8O3 z#~0Z9NCajHeQi6{iN2q{#*11-T7ck zjkNqY-Qh)55xM1B+ee+~C+Y9FuA|_FpC9))(NEKf8+`wW$S*|RvY15G^e`{#6p>#G z{F^)LcrZQQi}E7!2Ud4gu;rojgMDEzu_NN6T`ei!kMHLabgHqc(@~P!l>6^VM zcQicwVUa{Do#@x;2fe6EL_Wb?;zYkmzwAW=BJ%B8>rR<|oBq^`N+NQTXxi^ir?$>I zl@iPJ9&&cCBR)>Q(rCvXOv$pn+#WcsE)(${I1A`J+3kU&H}h$w-15vGIM3{XQ~sa1 z2M&$;rb&9t*Z07gRm*aPQ%qUnyc!5%oHf#iz|$vXDHxvNp)t!M3l zvqLn$@2ofOfwMD^H12`Z+Ad?pm1*1qr#+A~?t#-4NE-LR8EBOF6?oPjIAzfscMqIg z2Rs~i51hPcj=Kj=Q8dTh1E(ySv*}v1U(aRjfio(aL>_cY}N!A`XdC~l83yt2! zJ#b2aq;U_NN~5IBEuvcdB5ImjM76{hQB#|1i>M2+h|)V8J~{1~MbtAJ2`0(^%th2? zZV|PY9`p4@)c>H31dl^n8h;}}(HwUXb((0JMbz1Wq;U~-ejsUFM6GX>jJb#!5KXg) z+8#(67g3{)k}(%i_ll-jMC}M9jf<%J14-i|>L-noF&9w}il$ja?F=N1i>N0XC1Wn4 zT923h*Ndq3K+?E~>Ix){i>QG>(zuA)9!MG&QKOBLF&9x)(HwUXRXhQ$8g~&@63uZJ zQDxB_cM(+;&2bk|J4JKcMO5-Uv}oK#R8cg|B5J!x#$7~JM04Cl)K1YHcM&z=M6_Vs zMO02S%_1rvNE#PW#YV}Pi>Q)lnnhG4kTfo$l01BOWyW1Z-9t;b2}v8BJL5{!Em%Z- z=}UPMCCSVEzqIG;p|ptN4U?Ojc#CE1t31JPrrgZiGdJ`0%qefr+>Gs+d6Q&PaT_g9 zxXm50_NIRlT}jh*Um!}agl*c#{nGrF;>7>>Ql5TG+=hVuv&ZJ7X|gNZ{FW_rCgy%? z>2+TdTvdB@y)8c=sk^GS^vikDND|qS+P!M)nX78gTvhv@xgh)mjryj&^qBweTo5h} zuBt5!uBttEcV1OH3#o401>sK79Ctz3vKltcf^cdeXe7>SQgE37lgU9;o-Oo!n|mXyC5uz z=C}*OvS^OGARHCVaTkOY(HwU{m|KIkn+0K)NXA_dmPB*h1>vY@j=LbdTQtXA5LQLg zEC`cx&^CKjtx+=Of-o6QM5C&W?po~W#yL$B8RgH6wtd_K4~biBG&TKo z%4GVtiGEMq_jw~jgY!1`t=}?254-p;TQ;wow{iXYdE1sODlA$sXRx@6^ z7j5gDyWX8W4h{Eg?i-%F$vH#6_w;U{-0RI7(>qw8a!#A>oiZXq(90&YFf*P`!aEO;xAinpg+T(wcpz=yX?ldUUpg8{g>|5JiF;E68Qh6 zd$(NQQf}$EvH6G@^moe7nb!QA8P4A4-9IfqbpL|1+~B_)F|96P)KYdN9d5avel|@! zePX)*^)2rUOip(i|B%TUyK2%q!;WXUH(lGxYVj`E+HW`7GHv_^{Mwzic4xeHr!8vZ zu8rJX=tuJF#$d=kO=ACa9bZpZzn-q+es}ss>Gl1)Ypgyq?i-G9yO1aT>Bqf4ibsx* zBlW{~+ipCj?Q*`~1;1LaZ@J;l=4M*`xh>n8lmDb8(9>c)*ztdJJs4U4$+MB^q;b}N zzipni|1Pcl_S==U-`JzZ%#1M?ePi1)qvjv5HEmZ%^Dd0QUC!dWV9T^IYsK;3Y-@MM zYj@hBciD|03%>d5m-1>wUk8UF%y# z$2wf?Yq=qvOxOEvX+C1Qztl%p`}qGeT5f?B>)zBaSPiAfts*%$B@%Plusi_`yJi_Y#1%BgZr1UFFJ-iGi&^@^B34tUb<&3O`~}i`pKeR$|L#kq@}TSg@shcD z_JPkVnE%ff_0KGr`N4^QWa;?Kg1PO%M1DDs~X53zUW@i6A z7tQ`}9AEzlW{taG$P4D7;qJlVWj#HE%l%WB%SSfQLzo?fHA|KjPC9GF{AB&+!S&~C z+Pq=d-` z^fYLpZ)EF9eJlG;>RU0`KQb`npF>^KIX@|E*u15;uV0s)-wER?I<-pUe5rfXwSTBF z(w&7h9Sb?4*|G&=lv_B4Y|$99Fp?CHj?Q-5vvnT!Y@LTaTjycV)_GWON8$X=1(AB| zJgm3Q!+PsHthdh1h(f(t{wz%jL!0^shu4j42zs9^b}Vs$G6p-A`cYx040F>E=$nRs zn}&dA)oU68{ft33-?brQV0l@_!1A(;f#qdOk_~;`TYHl&TLwGnKlf-iB^8%pB(cy# z+wq*!2?Hba)OW|C!f+6H8bW@egmEO=xy1KJ77yb>`ty09FQLi3rF-L$n z@Pjmrece{r=XGv;Lfv7X*Y(3bC+?G&p^|+Hh5ij2RG8d|=YWJxInF81gDr;swE`N>(Zi|7VJuyS@i>fS4TrI;;c#r$a5(&H*hFH1pG4O2#WL7* zfHEQgePf>|5XIBjiHtJmX1nJ$G|X*mnA_kmx6xs4!^7PA$yrD6v1va09b#%_WRWOzVLZ*#f`{knf^p=F#*v4f zQ?2tC#(M%h?25X67{)p`aYRN4Q$<}r^oM$>mO&ajmGoolofCe7#kyuGmI=s3M*F^UOu>axVO;T*P|04mo?F5Y+^A#E2zwkeson&?E^P0 z0XIznH@y#Tvx_XU8V7&9UgKwE>XNpn#z#+$hn^b$JT=~VYC`U5=oyVNPs4#AH1tep z=$X*aGoi)@J`mVJU7KV$TU}0PtIO+WtA5oKj4Y~w55>lH#-Z;N>)7$1jKtQGH5?kL zVG{v1VnV>!#DF~sJHic}tVNdy!V=^SXDkY4X3*#qUk%Vj@#P5Pu)X9H*_9G33=+ddq7bGKnLz_4D_4ec_ zwu3rGC~aH=H@<-z=fFenXk`27xsIj7s5=>>Gu{nb`n!h%KS+-c{4|vt$6r? zLD+?^v3{XzTjjB76%Q$6gt0NgIKzku4QnrMSltf{o7~7sVMM4EytN5bMa+pIvA*=ip!w3seHX(aX;@Ofvoc|2z4Gt!SPPN;td_D zb8Cn7v+RVCsN1oVnC+N2!=KtZNr#S(BDKZZ@`mM=UqEpx8e2}6el}myt1etqPs%BX zyZ*n#ih1gX&7)FS{#))-LfE>xy5X2DwwvSQg5oLyGa`BA9`+~I%sA}M8V-B2hE1!o zP8NJ)!z#%|UT=q0)^J#54Tn|Muo*sVJB(vZo35MFYHg_dqTa%~?xEgbu8|V2FDTaj zJiwhs`163q8Cln=4aCNi-oPS-tFt{aiRwHIL7j&&sPixgb#9vLuYlS?!#Ernu0?!@ z*z^;4=w)3$^s>%FFYDa&73>@D!L6UT+HC}U%1-TdX|-XN^L_JGTX2(4WmobH1!-Iq z2D;VVcoOq*QXShU?6LE&8VbQF}_9*Ez|~ZJIyk3BJ@p@al%HCj;;4_ z`Kp%w^l_NZhN81Dy1;Q>`_mknW3kHkOjGqa6_S(PG0KF^s+BR(krU*`X;af)n!Tow zbG(LhQ@^I;&+Fab$iAP%am>CSB{w$4wy)2sY30-J9u(qB1Y>lBN+2##L{8Xh*vuo= z4##Fq+f41)nHgzEpR%cQQz`UKt;h}G%yM=(XIMMTv+Nl6VTY44J(bmX$fscY-fp~p zC+Qk8eHo{rlOo*^Su?r7dTd(4*fu1d6Zv>%j4;kHVuRsr+w8_ydb8%LI*7W7j{@OD zrKa*7Q)S470GF6??qoZ`29xh9n3gdPTSgx7D%MskC!2+#%;&Dcq32rX7k*)=YdCbM zhK)mP#D?12ZdlCf8+a~Q=q0>dk`kqRoXCw;dZT6UVE1tUU}4z{&h3mR>)JX)UE3m8 zah*v;sX-9-CkgnR*F=c1i4bEGq1aL0RqC5*jAR_;8JjROHb(}=Ci;xSR#L#R)K_tF z0$yaA_DAPST|bOKog44{U@*>mYJA7QQOCOIM67ijJ@P>3#qRB#6AnPfaj9 zHT~de7z%2Mr^YjWlt<-H(Ke&R+X#IV-Ovl7vGr&Thq0((Qz08MHOiXPtk7ypBil2v zODWW0xZdrbE2I=14gisdehD?*;cbP15M9$9JYbcZ6bSg!IJ||Lpn2WUH`3)JoWT+2 zNEsKt$Pah%Vz9Tn$6mZ3wTx5#*yBgkV#cAnH5@ut!(kuSu!$zy4#P>>d?lBfvEr=f z=T6G`7c=KN+dCGvFY271o4tnaD#V_T}yz|sV$Ws#_PfdJ0HAB!- z6Esi5m{F&C8hR!)^h{{znb6QPp<|poL=OAht9CZjp8Y9orT1C~$=P)}ie;Qg)lZ_i zgZOzQb8U`1#!0D(1-OX@xQPdN7!h(bdJ0kJq5V1!?bmsheKQ(rrxu%gw&AoPh@oq` z&kHv4S@)>;cDmK)GhO1*Q%dRzoNb4rklGaO`a0*XqiK0z?_k_E<^1TGyc>yrQ6Gk} zhD{W4Z7LiE=GspC}H9NZsGuL;sCxhp%aVVA-ds+b2RO)(BQ?CRz5>%{+%+8=eQz;rL`^%465)(1 z6O4^*#>O^d?%7jUt~w=%D^-Hq8e!MDP|0Q0=ygNBCQ!fD)o>JPywBnk!f2Cae^#Q7 zNG=GzgY9JS*meR&keX2$_o*2hBaA}_T}b?yv6)efP23rqxHC3=>JQ(>5l=JzoS?QW z%DAUplV@CBuE{elFW2Pb)xS7?Jg=2sGLAfq1r3DS+GOk@W{(rm$DYVw^s%Qp4?DWf z!=A2l)2F<=HA9rK=~TvHr8K%2hjrGl8C|TM;R!{wZ}o-^L%qW*`9W(vxp99coZN1% z`8-6I5&W&r4*o%ZOYClZF5n-b-xL&H_=SzHVbgej5LT1CrX4oEhD|Hum(j?7wr&O# zo>?-@6+6^kUYQOh1v-cY(IPMS#)Nemx1g1P-0-K_#%oVQ-$*y(wmM@IKE`1m)Qp7T zt6?*C*og6uarP3KjzcL?yANv@ zRPIh}R^(j>2Sy4T276ytSaI4V!L*>!#cSC}t^P1+uSIeg!se10+)yzSBjbuVZn6>N}+w? zv(m^o;HN2cdi1O4$S82y{3nk7g1LSM+IPLviTq(it#y(2P}F3R_fXViV?8Wnh7{)i zSY^V=LZcI9G8X5x)DVvLdbx~6d##)q->5J2gF@)XrJb6QGiw*`jJr+X)(q?0zKy-> z$Ju9Y?J&=>69%bnCk#TJ(~ytOiCXkXq0qmj$GrrD7U_C;^P_KS-ng#eKk!!qS8e3T zSHodr$&6RFM);UyCKcn*2-#*F2CTtFGYnWi3|P$4BN&IBUNd4QCu`f5`6|Pfxd8d-8{3SHZN^KI{(%9yC)G_$Yx76gtkQT~(YL>; z*4kr{{NkAKPY~OK8|Ep<%0phK&+xx}Fb`raH!^KE|d(#->Kb z8C9C-vUWIxo8&O}K3Mkp&1HM)F*FHm^DIlJPJ_`+f z78?32)CAhwH7)Tp9AV^f#519xXF@~Igod68H9qiq%*F>?o)*-rB(lf%9l{XSu*q|x2bPMwF%sdF>lz zSIKL;FX-pLJM{D4T+Hrt78E3Lx$|of6it;^@&qVpeq>|tc0WmzeUnO*wZ0zkR}IZ@PjkB+uFr`(&SJJiKNN13~wSbA^GD| zTCfj+ro_hW0OHNb65GQ(%8F z_)f*o27glV3&C6WU*;{yNWC1qUGba1yA=Nd_<-X74!&LS{{kOXd|Jxwt%7euyE?#& zGuh7^_-gPH_;m2C;AQaR!LJtk;H}^v1K$Zw+bH?Z4)EjvuJ^^@kAN4!XM^uEf&JeO zF5~vu;1zH;58dYs@SWh|{}%8G2Xeh`{=3hc!E@j_Pm|70aUIBll;y(m`t>TY>U!nLO6eyRku2%eD@M{#G4}PuUr-PRjFM{8q_{+gR zqWIO|pHTc}@XsjzdGNaw{~q|=ivJe;Ud5aCBif;pNSNvbV7b$)V`07Dt;*V`HC+BFDiZ( z_y)x{fNxR!)!-%Y+33e>z$=R13Z5Lo{Vw_y@Vw&pi+#m^FZLBr=>X*7kQ^G?KM*{x zcn5e%@fF||#V-*1&kF4ii+#o4DE1Y9pV(LYvtmCN+TS7e75|mkSNsXFulV#yh|gi6 z{pWz^6<-csQv5vdisA!e|M1ZM&3p}pA!3u-zWBGh4z0g_7#6z>?=N%76xvd zR1}{Lo*WU{&x7X`KNq~Dc)!?J{0(CN$k6_K#lGU768nmOQ|v4Lkk~&ewEu+IS9}JY zinutG6h9WcqWDSR$?{5~v9I{=#J=JwE%<$Y zI3~1z5O^N^cI2@R(SJ7U3ts_VQTzh%(sM%nA+djK$gdRpb3$Gg`-S_5VZcFA4cy#QxHdPo@(bpC1%I0=)FxQ2#ja{Ba>)1D+fo^37sj@sij- zA=H1T*neKgKPvW54Ea~YzTyvv{d}nZXR*I5P4Lp9@|(Db!yBoid;%mWkYeG90f|nG(6uheVJHhkkgmyj(URL}o;K|xh|0m!@#s36eQG9Q@ z;NbE@?)jme!@x_5F9xqFeinHC1)-f@@Ur5s1W#TV>c0)VsQ9hm6~(^@o;x?R^CR$* z;(q|IDn4-r=EZrTokPIOiZ1|9&JXp^052-O4!olHCE&Rig?8QwUQ+x+;8n#d;Q1Ga zc76z6R{Rg($pxYQp8Iheii$rAyrTGG@Z3v6JFCG+cJQ*|w}B_c zQ2#67Ma3TguPFX!@LYFjXENPd@aqS~j|8tOegb%YU1;a|;AQYrk;g6sPu8=(@Jqpq zioX-QqWEp#xt`F@m%&Sl{}{Zg_#eUZy`h~Jx`658P*(g<@MJ@%zW}_b_!;08#n*x7 zHimXC1}`bT9lWae2f*{2LOXYXmlgj$c(OUv{~dTy@n*Ww;@44%9{`?vX=tY%yrlRF z@T%f30nc9;+8F^aEB+?%WJ{=j6L?Ya&w*DI{|+EP2jnK(9Zk8ONxIUysG&3!SgQ*?ff3RtawT{*j#&) z!BGD|@S@_K;1$JB2hRFDrgCct!C$!K;dY2RwOs z=>M<5bBaF&o>zQ7x+U!5Q&fBocuDb-!OM!j2)v^B%fPFOUjd$M3;n+VJg4}l!SjlL z6TGPSFThKR{}sHfcpKeVbaALCehhe3@jQ5Pap?aG!E=iDf#(%}J$O;^>%dEj-ws|@ z{66rC;y(wkD*iZla!Kg_RJ!Hw;*eAP81TH}%fO3@p9fx2{AJ)}#jgafC|(AyDt-re z@`}*^Z-eI){}p&%@u$FxitkSe!NsAZ_&o5k;w!)_iWk7EioYB@d1dJTzkuh!k4X4) zGk8()JHg9}e+Rs(_^-foui|>e{u5$f@#%+g9LkD62fV8Ia`4=%L;L4~7ZvXVFDw3f z@T%h1f#+VcEO8(4|C8WF#qR|#EB-U^s^X7<=Ss^0`%@0*I208>61=SV@!(a(&jHU} z8rpxU*jM~gv9I{M#J=Jm6Z@|X?SED5EB=7kSNu`2ulS@{$Pbr=_74XyD!vrFtoYgB zRmC@p{nv%|OJZN~cZz+*KPvVW|Ek!3eQ5uuVqfvUh<(MU(7%;JG)1_D=vW zD!vxHtoRnOulVc4{^g%_j|w~Kwn?-Toq|3d6v5!(No*jIe|k;o5<9}B(%oGxql z&q?4r6+a)m^-8W+^j`+vuJ{$;U5eiTKA`v=;M*1dHu$LGzXIQ(_>BhRt z1EY!`1-?V^=Yj83`~~2xZw~$M18-OSa_}z2%isfwe-?bZ;@<@yRs470I}}fk;r8xS z{2=hwt3&@6fVV4tCU}?P8^8w?e+~F{#oq-!s`$sjcPM@@_)f)t4&M4Nq5ppa&x5}U zd2HIVISy6DpABBx&UQq98F=n3AwL(qqIf@e@vWi$<>1NNLVg2yS@Ao-^Vfv>-vX~H z{t$TS?VYoChyes4vfR_~?0nfiX)PECrRq^+Om#z)< zKM$UJPsqOyUQzt_;Kl1g{Rzi%dz1Hu{9y31;tRm@*N6J6z^jV)fR}Cv^fa5Xyf5SrfR`2j3wZvfP=CrCjDN+C0x!Kk)PEj$?&grc5WJ%J0C@41 zQ2$EsAK*jM~kv9I_S#lGS{68oPB?f*gSD?YKE<4{)o5b&zv z3&3-q4DFu*UQ~RY*jM~wv9I`cv44AL{{v!Q@w>#n;y)1kivM2he=4+}c5obuiXRAG zR=fkes`zQ(xlf1o3u0gKi^RU-Zx;KCzhCU%5!$~~>?{6Vv9I`V#J=K9oyZTL3GE*M zUR1mTysY?2@T%h7V*j(D{fouE;%^cAihoG#EB-~X|GCiqzlnXt|0wnq-)lbdgW`vQ z=k5&cF9k0uel~bn@y%i%yo@~d8t~HR*}m|%gXjJ=w8;$5Ns55bc!g#2Of zvf}9ijzhi@>K_1JRlFU%^u%(1fJX-@|(cRihm9~ z|CLbxJK$Bte+^#xYN-Ddck9U*F*jy@Ur5A;Q4z){VTz% zikHDl-w5^Z0MFeQ@^67x6n_Z3_{~uNZ{W$dLOyK~$DyqFv%&M<4)vFTR~0`OytE_K z?+4F)C**GcuPA;!c=5ZT{-?o{?}hwZ;AO>s37-FcsQ)B*Rq_26a~w)P2=(WJ=k5>r zso)jGUjknIVW@u*c=Dr=UkzSX{1)*1zlHjDfmap3AH4MAQ2!C|+`or>;u4I1@bi(! z4hGNtg!P4Yf|nFO4ZN!OOThCFgm#9(%ZgtGp8Pb_FM}5q|1@|-@o$3X{v)*W3-FTS ze+929-nNwEldpz$jsY(#o(E5U7V5tcyr_5|ct!EogXbO$?OX?5Qv8$PRmJZG&;LBM z^E2?W;*WtRzX+;8n$6 zD)#>v+P_rnEB-FAulUErzT#gM`~Ml*e?aUj{;1ejeA4qc4pqeu2haT}w7(R*sCXB6 zS@DfxU-4Iq{YOLlZx{QDe?;sn{$;VR_>aZ@pF{h96#I&|oQQd$__M&PiZ24s{Ux-2 zCU{Zt9x(Erba=M?`QcwX_} zf)^EUI+^28QhX+OS@C(`6~#{luPS~4c#=>@&?o2rO_CAtoZ@c=&ntd2cv10x1urT7 z1Msrq4}(_}-{TaHLsjuZz>}uX|ApW=#m@xKE8YuURQy%oCB@$kURL}z@QUJJ0k10l z0C>{O{?lz-|9KQVulS@>F&-2@9K53VQt%`V?RSCa72hcK6@RtZSN!c_e?n;gHnFex zSH!;J4~Tum|19?R2<=Z^!Ewkdek6EF@e{x+ia#GbnHbvND)tqBz1Ua$y<%VSPl*jIdyl^Fku9|B%cd=YpuDYU;DJg@jBv9I{0VqfuV#r{5_{ZER0 z#qSgQia#Xw6@OCfPY&(xe>%p$;_cui#aDt?6ki9PObPA3LhLJkjo4TGHt-LE@8d^% zl6({VcEukCuP8qG3~pByybE^bfVc0)Wm|#VyBh$&xii&!Shp@SHN!u zPuiH%?KA)RqUeLa3H)bbAAA=06X3aNY-cU_A*(QM!DoOk1uui=!OsJ)g13T?fG5-0 zzUaRlJP$7V9|tdj)3oxR?|_ejw}C$lURC;&&t(7GXK=lue++mLd^YTy4t@pr-ryU- z%S!(W@Oza0&EQq=cJ%L8!E^hwKjgOm{2aUlF8UMBV*e{ML;b_Ra|bXN{pH}r14I3S z*a4S#z6QMYAl8@oyazlFo`?T;f|m|veHrIJ1h0aZ(60XiFCN1BIq+$#F|NR+-{*sG z2cH1_)!=3D+rj(6i|#~&K6Aj|DEi=U0{<|0{#mRq&w;mr{|3AhT=MONwcM^exa7%afp1rKmV#HnWxSmOo;#ZTk^Ha~ybE0Xxg2}| zT>QTgyaYZS{(qkMSnu+c0ViSn+~pQ`xL;0G#x z68J2|3*hbGGR`js?^672-~)=^27VRzMELo2@a>8}1pW@io0_>@*C~Do`1`QC-rBz0Yl{9Cz}pp<_jz_H{$J1^P+Z>USq9$*f8>3h zxel&32fmsntn2qYxQsV>pJx%AZd>?|yw9@?F5~uNurmrS^Gn|6Spk1B?8y5(bDivu ztc&D*o?YNFZsmQRCGfehBk%JZ1sDJ2eV%uN%kfU$=UD~M!H&GoGnpU8N8aa|Q(WHX znFr6qj=ayaq`17#v!eMp^Ex?>{n7Kf9bDog^ZGP!J+IGJT;}!pip#uSuei+X0dPI9 zw<|95dQ@?l*Y|?!dA&n%nb-F#F7x^)ip#uy5M0meor<5`%;Wz_#bsW%9?$WYc`Ea| zU2&P$U5d-R9#CB7^>)Q&UXLm+^STPI=XLRfaNNqgE`iIuka=AO*YmmxuIKema6PY+ z=W)GyUKhdjyxtBj<5uQ%1zgYTo#5iX%k_!0*A>NO zUMG3>NA!Q2F|Yra!SAH};qq|hEViTP`%Z9)o6Pr?)vT}Q`&7kcz8|Q#%=cM}%Y1JK z*YmwgahdM}ipzYz3S7_k?TX8Me~02S->*~rkYlA5~oD`(295eBS}C=lf2@ zWxls|ar{O93-G61ahdO3ipzW-P+aDF8C=iz+}T{OjB}aqd2pF8GT)2fdcK#z^?V-% z*YmvsuIGDh4f~_#dl$HjTbb`Aa6R8g!Nq@>?{|ai`CbK=IMj~g=Y;W*`JPi;=6fDo z=5OsduDHziisH2VjIPi3dcGTtYKS|om{tgSg9lMXi z3DDR3M09y>_nTPn?d)&%cet2%8|^!=ea15HceDRDNv`x9UmAY=mUu3)`$1fnq5o0h zt)#zYU|oZiB>7Z^{$-xq{WboQq5t&^{%hi{UcGO{pELCLet~P3{Tx7iYV*FyJ&2EJ z9Obyn=iqXEX(4eJ&j$wbUiBfmzTiIRf}ebR-hY4h0{n{2s55FAYEb zJ%jJe;1gcx;yE)JQ0;0Z?&7xe%Xx2I;&z$06WO@W_S@bJr(@!s#ciDXdy~ z&e}pD>FFKp-MD#ZxOcEHytS~NwvFx`B8{H@!p1HA>$(@?u%(V(c!_1lMRF2TYC#VBU`s#Ohp>L6-aY9Pz|;Y z>MV3$w5^le4Yq7<+*vbI(kc5WE$>^|*I1&khW1g4@3F-DbY{wE1Gh|>+u)w}Z91iA zWA9K`@8ELY`>3HdEvehnlDakJJ#Xn0_hLL*miJUH!;`>b;G>h&>}g5en)7~n--^Nh zk%1w<6I4SfD;uj^7?B2>fse{&;H8zJzJ|?zBc5hR$1V$ROl<}kKSw6 zzOiQQYvUHdZd*3DtGd~JEwUvz=`M`wMmA_9-S`f@9UV~p$K&&uB;YXLKHB1Z#f0oxI1YvA!f8@s5lR!nTXX40gFT zJac2;jEM2Z*TxKQ9%yh!M(1Vj0htlv`59xQBV*uoERDx_enyvcW(K$>;U|%yoSZC<+u-D6w0TQ#i{n+s zwtlC^_~c}4@Ypw)JJ;g45l&7=K6ov{Ha&m5y2 z-6YnHl8j(+ax!K(IT_5!$zUWW%QJ$DoGi}>F_M$f zM{=^9lat{{PKF~n8II&+xKB=IyIh}~4E4FfP@kL(^~uRlPEHob>*M5Pw0&YR)MpAq zIXPJzx53HDXmfJ1I9??uC!_82ilLmG4CeV}aoh+eC!@{t$6!uQ26J*Un3I#ioSY2i zsb(-ICxc}hWVM**nPaq(oGi}>7AGg8&dJGOPEH0RIa!_&TqGx>kK|-|M#MNd8Ffxh z1|vBcj^t!{Mu?G|j6RZ+<(!-hM{+V8$;ogeC&PVmG8CvOFWWNKQr{ z$;tAJh;ec<>YSVmMshM7$;tAJ5FgC(AQ}#mUL2b8<46 zlas+nPL^i`7s<)!BRN@~5iw3qMxB$B!AMSqBRN@~5n?1KqmSfdIVUH>k(>-iaxxsr z$#9>XmPC`2p*}eo>XVb9J~su|45$zV=S2J_4@7|F@< zj9_tcGU}Y14CdryFp`ty8No$zGWtkPmS;qalao>B;) zoQyUnCyV1%a&j`-KCc+c$;n`zZx+XmaB?!*Jbw)4CxbaT8O+JaV4i9Qb8<46 zlas+ba|}juvOFVLoSck0CntkBIT?)PWO+t#k(`V^l9S~b5#!`!)HyjBjO1iEl9S~b zAx3gC`bbWeb8<2q$;ogeC&Q7P4EM>Yqdl6PEcV&LVxONZ_6f>j&QKBVQ&fa!)anzA zRre{wVop;Lo?(U)mDT4=72z56a;~!aKF?Up*~)UBff1fzhZC07=SgKbr!31kXIaik z%W}?Imh&XEob#6DoVYCKX=OQ5S45B%IZj@-0B0}DIel4<{1p*o#TpsRmOu)N2(rS* zNz4}DEM_^$c7W(AzjOq%1=VlZbGgE^lW z%=ye<6NGX;>(3`agQT=JO} zWW`$YnJFRp%nGu?hkRxVAfFj7`OF9;pIJdx#3i4Z5|YoX0Qt-aB%c|9|%h>PC z=xwAGtIxU4aO5Y;GX?^(lhOB+BYeh+TIDCNp?-82>XVb9K8l9=a_kwd7>A?2M{=^9m&BH5^fr={)#v17IFgg)83O^y$>{s!6h31m$;nVZIt=ww*HAyy4fV;% zP(NS{^~uRlPEHp4(VHJfoM9 zoUA@4C(AQJfKy1T&&kPfBqz(W##csfBRN?+oSY0taU-NzpPUT!1IAFFoDAjUWU)_97RQ^%$;oQR8_3DYYR8+%$;oK*u(deuAP*j^ z9j}s;lhNknWO2MoPEJOfhpWZ$P;qiH+B_yLjyH#ArqSl)WH2WugE=`_oH5qoo*+3H zD@ab3XY?|XlhxGL(~(#XdP%9B&>cC#xNAASWlQ9d9BhC!@{7 z*5bH>Jb0{jyh=_^Mw^q9#qlaRIT>vpt`^5b#mUKN^O&?a-W;BpMw^q9!JM27=Hz5? z##oDcg5+eZAURo{(aT6qR-coTKwpJf^x{RNkyR1GZuL#fZGx`Jo`Gfpr4at2!;}QNGI#MF5&+wv!NQtay$Sp)$ zIj1pe3VAFd$Q*fDLjb8PVv2K_6(E^K1X;ra>5NJ=yga6Buz&sXkqz?Z9DZR*mb?=; z#j@l}eBzluj{OA*y@#rQXn9|x?gitNT{uSBh2xZ6G)CD)J z=K|4kcaW3gYLZpVy$~*|n32_Mb8o22DrRIT<|CL4OR^xd%)(5`qD;x+Ov#c=$UVf`4UJFVomS~so+Ur8Mc5m*Zw}vWlhrCU+P&jqXvNKO9 zoO0I5^!8JJ6{`FmypXgfDV%)XSSU)u4UyYh{uj?Ni&gWOGTDknBLg(DhxfHIE z;h~TedV9KuyORy{I@Y0HC1QKti-K#b7Q2!Kc5=hO;O4&J4O(O4*8V=$@Db=4>Mv~S z?(5mon-o^ACPB~UzQV{*Z%@)Uxa#DtlM1y^E??2jx-wgS{^+tT^qGWJCWzuWIs8td$#HKDc?iq1lDR_{ZyoMlM?Z%L`R6A2jl$YHIFQWk>mTl&yKMQ&Im6u>@oi(@$lP@!o454L z+1!)Nb>B914{b{3_FUXY_W0-UAWJUl9UR)+-xqu-kZiDbOSdb4-v+h}Cv$!D<_`C6 zqu*n=Tbw3%Tf9CpH*dp~n zGM8TWyOmzyORBx=MmAF6?ml|Et$f|wx1nEt?_RfVu=gVQwqV&7$LThH+&)Qr(tlEZZF8Q!CCOTVoc~t;N8V2@q=SBG zEI-_w_o88xm;DJmq9x=aZAnurUrF=yElDa4(q|+8sQs(s_Y#sk)!_f^ z33;zO8x7qLCB=X7Q+{4Z@+TY0=TSb7@;Q{({sSkM&@WC^>=jYIi1N}-sb9DMbtu0a z2DhR7Hk989?#k0!-%b3kCgx(|{Bxg8d*t!c|43v%2>xdK|4I@xmfw!@+u`u26vR*2 ze?Wd-qsr$e=DlVf4z1ZY>@g_^bIG-;{55!g`ZY7Soa~n&`Us1BP0A=Q@t60wS5W?r zRbl=4T1o!pgR1daj%|0B|NE=v75l+TS*-d95ZJV5`su9ot%QGPbc z??C%ye2U*P4t_~x8|#0ppZ$Lf8A&41*({QMo!#`1~0kA8sTw+ZFshm@0_kE-&r z&%h>>*Zqy=h`Ho(`pwyr_Lorq7L=b|)8t=r>ibjl-PvqcT*}M-bRw4e<)_Q9^1JA` zpYKNfI~yVWu66g%D1YV4IDR)=78=myXJwS1{bw%!8WliYz9Xaj2mTkAf9jaA>pubI zb^LCb#Xa&c?MKk~k@_2da!rj|bo_e-m;ccQ=7-UbW2r4NZX~a}{3LzfXkp+%rt>rE V7u~5Dg z5+h1ftfzB#Q}df|6TFdLQ@r=|dUz%HU2OIdAvPiMxjk?l zewG^4^9u1&LqBb#UPC;DQPG#orV7;Y~8{ z_LH{UX8di*@%%pFVkzf@izl1?;pf5T7yJaDVY&m6j^)g{l?R41gZz@(Wm{0c@H6=7 z4L*6{vAYi+eDd)FPhPm_%%uaDj@*6V?!yP2aq6I9rrz{V+kFo>#N-sVV>N!U%x&?a z28ciL+c#f2`iV;(+T(yOckK3N!R`zGb=5^o8@}*0^Hv4RHZj&66ZZE?*uPuC{?Q5h zhb8QvhW*uexmyKx#Fevo!u|mX`#tb*9GiW2?~KK#FI==_o;UB*#V0KC7N5D~4DXm@ zPd$B!H}ANUPd(!VZ{FFbFI<9;z--POCY^J}l4DL^GUt?I7B2GU%$a}6sf&U=bG&`0 zP1$SjIl~4G8#IEYFHnEsFLJ~`^edWRJG0Y51d0Oh2>I!4zf$@cwb>-t$B)X@vY-2y zKHRF+{#;iC*jMeRZo+Md+8_1>Vk6al=}D4eg4(b9OO4vE%Q-{s5BoMf%~JbqWc0kb zYJW4y(!AF!|Dv?!(&80A*~P0_v2jUp-E!=%S^jM4Gs*~GcZ@h4COdXng7>m+6Y!0{ z7trX_tvj&oaw31T$v)j|ejm%*3Ed%r{3pNodE`vTn89x1PU3`=_=S!oFtJ(=|_hHonH+T=UxYGm-c)8rH0MeaSaR z)vS76(*HF`U%TfGt9F4bTOWdyb?2iXM?GJBF?RW1Kg0H|S-xlGB`{c0l`BHqL!PWg zl!yI}%}0IuVF%C-aFozWl!#k{dKSW53bkat>#i7tDbs{ zarX(T=gBd|2QpCrb;v<82(?Kn5X_%gAel;O*1~^K(K9=t1-7qiPYF!kHlfmd)_EN# zdY>;66JJa=2PSI*lOZ&j8nlv_Yzs^_2PTtf(l^(BFQEvMe`&6Mo9e#!9u?k%x92B+ z=!G@wmaADEYc?`x|I}kWa!_esKwTBYp@%fp073-{;?YE)8bY5Szc8<^Ip|nIFAKE2 zX8A_H?6=-U8_O=b6wP1u+sPkd&&tUkB3%fU{dRNNBSubT4?ewoW4EWa7q6Q9X4GKS zW`Co<`Khf<47izoYA$cP0-3V5+t4X4EoV`ls73BMy_BF7$)@YI>7V|)W5=e+AJO5b zZ{zLK$sd(HIC(Sr9KCMWrt4rDcxC2w$h_)<(((yYT#r7 zkt|kfcz?i5MCrCiX{6CN!=&zX1zA2mA#|967#Ss%-yhIeK+7k856 z#1*9xM=+JRz@TBo{pnwsiCYKLjKr<5Uh@$*8>X?uO(c-q<9YxN*>QT@z6x@P+f_jh zajgLb#1$nGcR7ix`_|-4;)>IVBbZ8DV9+q)dY}{;k8$69lbN`eVVdz6cN?kfd3#Qjl04sja*1;jN=BCdwS zT_rw9T=O*I2&NJj7&MHymp{u)+-)$;NZeW0Yd+$p!Zen+VFZ$UTm|3+;zlaSA+D=} z9O4Q91;jN^B5nbR+w!T&nZ&h7BaUDyae+a@h^s&;GM*09)nz8`ahPU29k>dnvBaH2 zAep$?fD?$jKtT?1$1BJoZVI4)IIrv?J>_MOaVtq&wfG=$Ez^i2m`Yq=&@kd=f0AqB ze4%nMOf&YlBI`9@kK6Kb0&yD&BolWV-~{5HSCB*8y$W)OTMZ~6u4Ph>TT9~Riw_dl zDvdaTsl){a4I}Qhzhx%wESP2_ZmRW~kGN`>#`d@-1d@rX`zVpPmPi?L>Jax&mC7OR zZ9oBWt&)g)fy6x^K1f_y8gT?ui3ImF!uC?KwN z5^;S=+;Z_j;@YGUM=+JRz@TBoJ^ts+#9al`jKs~iUh@$*7N)U1t|x(H;)(z#5Z6yZ z4sop%%7;!}?MaEFM<-N?rJpj{;rvuAj z8cW=X1d@rH3OIqd#R_tWJ48VaaiakRJ+2~&xCJDxwfG=$ZPSP&m`Yq=&@ker{wdeQ z`9ftiOf&YlZ{N*%&DY~zf@v&q4-rTv?kd0u#66-Qhq#**_X3Ig_>U%M64xP(ID)Cf1qKZxt{SDtc#Qk@t<1!| z1k;SixLaWwOWef-l8KuSIDxp!6yy+hnt~kS4h0kt*CC0xIubWfe2}=xG~x)R5*HXW zjJWx4=9)NPs2mH^j6JTk^_s88ef&lOajy_aChh^i3BD`rV&RlmAJs5VZ=S~dS>F5!!#ptv#i&A#0`XLY>#V8Aep#tUrQve6HhZzsT|@y0u&I}F^RaoByNNFAaR}2h$EOvTwu^J;=bLSnYfo=nvu9$t=D|SErDq) zaYqnHCT=X?kR4~r>lg(&#Ozqa$!BpY`gN6||_SMY9 zwT5X%;y(UE&TBs6Ho!ENxZ4RN6So|20&!~<l>2-(P$t{m!9-$M0?K96C%sH_paqa6?Vp zokK?fUXRO@yt-C!Ubp2%G=sUTDE`i&#q=89IkYQ_7Th^>j{tS0+^6mwx)1y7u7=mT z^YIoop}lix1M#mFWbYi>Oz54Y0`cyTI>}VZzX+C*JBKz8!c8N%b7;+A^I11{$X@Q9 zL)!wAYCtfpTSJrRokQi4dfSA+WF1ZHokLS5gzfi-7sC2&s{0kb*Ikac_&bLdAW_{9 zIeUHQ&`LrdD#+eBbT6S76lCvId4bUV3bHq#{FTsE0LIdk=pb& zm?roBrP}l?>ounLuhphgVH)=Str{3cAkzCw_fiF~031r!-Z?Y_CUqkfWcip+sH=i( zr@oL-0idAwC*C=95e>IIZ*nGajeF-%gt!WnB6%_(LR{T*nTdNGrpc255#p|bX)JN) z5J)C&HsFvrJHox4Eqj52Y}j5;=y(M=#7zMd5SMu8&};NjEj~zGY#an&%5?Qu;ABokNnR3dRLkuv1eA?}|ll|$UyfCAzY z?;L8mH;8*ce2}=ty>lo+T;0aZ#61qvjKp1Kz2+lsK1^eYJAgnkaf1Pe>^PzFUxW>J6C_>y|lp^CXt_Y?XiQDo-&TBs69)M{qaX%xF zOx#(36Nvk{f*j&%732_i0-%7n#5;$kkhrnpgTyuNokJ1g&U!r8#QBbKQ(>BsxN7S) zA93IQE`hlB2qY8tIN${0{;D8{xJ?Rjh`SF^KwRRTL-R@8a`8dp8u!kj2yu^Z$V}W- zFwIEZeCstIabsZ`+v9o?NG7fbZ~}4t6yy-sNv1o^G?uuB2qY7C72pKo9#N1(+)WB{ zh`SI_KwRRTLoblHS>l7lHSV255#p};ZLW#)5jP*E8HpQfz2+mXHB4iP+x~DWaa#Z< z5ch+E9O6DykVD)HfCAzY?;NTlakq*O64$tQ4n>ID@|(=WJpj{;#4Wd8^AR@-rm@70 zCy?CZssSeuH(5aras3tK5LX5$ATIIFq0&hp?&DvZoJm~c-Z>N@t{SDtc#Qk@SDA@> z38op3aks)Wmbi-vBoj9uZ~}3cDaax2GzB@t9SSHQF7eKxz9ep-_#knOd*@JuxcLv| znmAvm91GKoJ+8I&ny<%wye@&bR|q5%_W}=ImF!zC?GEJ&Y>C-w?ur9 zxW>J6C_>x=4`wEAIZQJWH_Lj>N8CV|#`d_j1d@sS_JKs=Iw57qsYBcjmC7ORBR~Oh ziFXbyAaNVS2Z?LkJBK2~eS3dq;$DJjM&fR@Uh@&R1g5dX9YG+OxUqmkcAP1%V-(~N zw~vAx;syW;h)cY4XeEg&5FaG2aqk?85I6R|%*3^ZX-48czBlJJA8{LC8cW>m1d@qc z4mg3hwF+{GyIesIai;?ch)cY4Xf27GB0fl5L%wxU&f)6E_QR0&(Xl$RX}n1v$j+3n(Bi@y?;r$sn#u ze2}=ty>lo++^k>ZnmAvm90=2lJ+8od&DZ1JzB7TiCkP}HcProo;+|EIL)_g8a)`SE zP(Yk>=a7A*abFU5g7_eDjeF-%gt%Mp$V}W4m}VqyiuIb0xGI>&_PAmK$;5qpdm?eo zkuv1eA#R&W0nK@M?yD99nM3!s3w#5;!;khrhcn4C#mrR})AkZVBK7;%-ooL)`faa)>()P(WPbokJ^0+-UJZ;u`nPp$KtH zZpk%qzGK`Jm}Vrd%6iR5+}AfJ5ce*DWa2geP9Scpf*j(WQ;PTFf_#knOd*@JuxG6W}nmAvmtb%FA9{2V2Ij{M8+zT*`CGJ52 z$;7P&oIu>e3UY|MQ9%xI7XS)~OT2TabRQ6RsQ4gpjeF-%gt*n$<(fDjaVNkuBXOgx z*L=j4!8De*e_fkO+}nT?i2Gha4sjnS$RX}|Kml=ycMh4G3~tW(*i_dY-}Bu$^yXoc z%$-AT%jd>-@tJbx(EEVbn>&Zz{2A_cxfO3|cMff%*YM7vf5NyXxN~UGECba2f&0{* zLqo8??r^%EL?rmfE%wf#@x&ihkiB#0U_!S5iY*ZD99k@yO8JMwGIHn8x_!+(RNE#@ zF`sqbetWxj4s8xh)&wR)XcE11Xj@>iIWU<-6MN^-XDEW?f6X;v{WjGt#rL{{@TTt^ z;y-K)o*#WUYW8f-{;9|8x%)^$cPpqzF4ZhTS18D)swH%Wf_mmstsyi^LH1UpX9?}8 zAbY>j2ZVYEv_0`=!sLUeH(TlC#;a3%y*547n#OeH#oBaIs_9y7+A-C1t2X`eDjOgw zk5H9(3qUB}5xLf_fl1we6vY1qC?wYs`b#Xdkju{nn$30i8uf9RB!!**;$y9Z{@9Q|4muIOSqwj=pVd?c)GNQw}*=r7Vg~xfCXK{Qw0AC;zNv zVd3}8xnEDC`1B^{Pp`C9o|sFuovHqyAY0xEa{&EXL5@hTSCAvp^AzNW^jHNsBHdR( zR;1^!7`qBYk%l+x#fr26|K_V6BAs_dn(`td9g}Jr5otM0Ly=yO%I0MB-Q|`s+x9Q8 zJ-Q%GC;=OcO6LOd0VRmE26)c<4a)oQoE}!v#S?&{BHgG{&QU3CO!JOG%8LL6A}z2Y zwS^x^Bc0yKd6IH%rM;A?`YFh!T2H8zf^31d5&HTv+fa^3-%*ew(#I9#i1c;^S&{ZW z7I|GF5Jei^m>4V42K-C2dWiI?OEZh~+EmksNKb-ktVm}92$g7gHX=P+L5@g|1e8Uj z-~7aSx1<}9c4UbnXLS*gJ{Fs@hCKZRP$1I6M3Kg)H#y&`TstDYNI|x|Mx+ZB0H!N2FIM$Pwuo3UWj`OF>qoKc`6d6o?`XZ#az=X#@UMT|Gp4 z_Qh$+iyZE!rJ6=W+8w5`A}s}wAku*fazxq&P!^Hiv%-3}q#LQc3MfUSi(^w7k^T%& zAkyMQk;bPtIUk~2J0cyeAX{D|(ryZJL|UXEN2H%#WE;Q{=^qs2i1gPAvLbzyBE4Q9 ziZr~rHddq!__uuZ5b5j7GmG@DRMUt^&xL8MNRI=MAkvizazuIxpe!OSRxT{*Mk@UQ zrHJ(R%WS!9N+Z&3fC7=0B#JaXy~%l_Kr5vAkrp@B8^XPa&E3%J0jh7fo%<2 zUL(@C6y%8XF$Fmyy;VVuNH0>5BhrNmvLgMKB0WGLiZr}wI##3&_;-u-5b4VEGmG@7 zRMUt^hru*9l6C};AkuLPazxq_P!^GHIL~^wq#LPh1(YJv3u99nk^T};AkxxAk;bPt zInPtB9g$8|kS(tf=@11uB5kK2N2LEb*EWD7(!VIk5$UrEs>)4@R2~PB-YpPC8r~ot zE7Au1Ysq?u^ur%#7U}v_(}+kfhiR-xmjFl*=?w~UM0!4;EFx{MTv*bLRK@^G5$StB zvgNWVjYxf@3`E*AQKa$dP0mj#*N#YksUVxH5$UB0azwgVL5@fdQII3j(F$@z+D$=L zq$4TPB7rE<@Mic}kv8DpXx2ld-&KN3(N(q>kqw(w>$KR&(5xr=h` zOy>IvvgI|C`5&Kc8){UpHOz|B?-k^Tbe)16k^W3Uj!1u`AS=?XZ236?QKaFG|FI%% zz`qQwhe&TYE3-%!rJ6=Wx;IS2NE#7oe*g(0ovt89q{9Ja5$VfkTJM&0BbBcJrHJ&Z z*px=3j{pip+B{LD@##&@XDio^NRL#IEw2&jL2D+uls(-=iSs zaDOGB1d-P0b)!DYg*|+lgYGmyQISR_^Z$OjEtfsIniZ!uNEwK>GV#{ zuPfI!{w`&zM-*gJnZx}}3bF+6lr{VlkhP`{2y|BF;vM0&OIZb>&%Sq~^h zq=(0*G$K78P$1IsM3Kg)H#v_}t{su~RFEyN5oxJ{9FhKgzHKN+q^~Q;5$PieazuKQ zf~-i_P^1?MM3IIMV2KrJ1O9b$JtFCbd6`AJI@L5H(i31BE7EBILM1vPJxxK5NDl>+ zMWkPzV7*(?jZ`XFqU6Ks#k!}GLh_rR0NaNF+oNrLB9g&`|AX{D|(&H55h_psQ zjz|Y8$PsB91vw)9?s(g5R-_v#()R?SNW+KC#EP^5|E9VgB5jXSWIWt|eq5SqM5G&G z8Y|Mf03?X?Wd%7ReF#t%kxo%AEa^rnivXpFv@ABI5$SM1fk@jViZnjG$@!aOZIvC7 zZc&geuMz1J3UWkxhk_iDu2hgC(o+=Vh;*ictVp*~qnN2DJr$Pwua3UWkxzk;kty%QkPs|2D* z!-ojPinIa$e!Lzcefj9jBE2ouG$PWoU>b@vGMRrAfKa5CF|*>dOhL|M{(L|QB3-9% zAK7t~^=>D}&6IjCmMC(#kE}R77n{;d=6?n#5NTU0Qd@Yl;uN3W1X+%01P$1HF zi6V_pZ*neHt{stnHruv_Ew2&js|s>N`Wpo~BE3ODj!4f}kR#IL6l8A|oj{S+2t<*F z4~L2sX#@VPd_6?E?C><@MGp6erJ6=Wx+_dWkw#XWDgcBcwQXo*Y(&?R?=PK7W{w`&z z$qKTm%;CPjf^31zic^__9Fcx=m~8+@q+1l^i1Y~s*+@ER;)+~rv9_j zz@TAMQ12g_S){*8HI0b$5}3w{bP<3AkzTDJN2E&uWf5t)a$!j~A{_xJMWlZ`#FopZ zG-J~L0t!UhAyK69=}pcXlxs(%YZPR2H6mT1AV;JpD##J(bOkvg9j+ipq#YGxMOsUd z{&28q7m74|=vS;r38soPFld-aN1_xN5BDuoO(P=x>p=-3eGx!{NWWB&BhohjWfAE~ z%7rD}NM$vk6p;>%O=(1WD4;;3m5CyaPj7N=uUtDK{qIcM8n(Pfq+1o_i1axHIU>DB zL5@hTRFEUmB?_`4T|b6O(P=R6Q;3|v=@K` zkxo&NBho>DvWWEg8P>Zc-ALtgKq(@8lE|BHc)l{zf2*G<=v_tVju_iZn22m`J}oAhSrH zNi~g#^m>@aiu3{i2_n5yL5@gQ0m>rM?#hKF-AH90Kq(^qWPe*Oo6?B11yTkg?UX3e z`1B^{mz8Trqz@^`=4wQGt%4kp{#ZedNarfZ5$R+FIU?<^AS=?X6ls}26lwV2x>%7C zOciNh&@hosnU-0kRjH;Ck$ycjL8R{jND%1`1vw)92v8Q0o~v9~(v4JZ1C%1ty<$@u zk zKCB=|q&EV}BGO^Xg(clcE!Qgt}lCJ(&W`;k8FH``&MnL zI}#tUK&$(y+?W&_mL>oTK-BWd-}}qY`+nH@SFL9Tc^{g2_GEczrhIOE7oTYl%>-=x z*4?@n9`tx3-eR9o89WYP9dO<+>J5GK)wX08rQHU=g`Xks6l`6-GZ`OiWAQol`gd*gdu72Xmant2Xtc4f{! z^3Y5|OBB=toXb-fXAwGFL3Smime4o_sfT6~>ZzbEIfu^@DpgR|9P|O9zfUkVYS2S7 zf24GB0{jG1dU21+)uyAZY1~6IwP{(Z=~`|2(fC{eV!UqErjNojJl<9QSXE*TfKa|R zjMu=V?l}di$08ECCl=aB=t>1yhu*n>mMF*`Kt~cfTtVugnS{nE$U0n4sHcKPzmKz3R>vShuPaC$g9tsMASniT zIJGd170!GBp>P~^Towx%b({t$VW6}QO___qO_ht0mRYv;AVAT9(vb62%2&tQa@mwi zVN&-EpkSaB|Ikbt#i!rKoPVQSs|97IxK7}G8kX(K;0Q!8&MN|CY*qD@OuO(P=x(`YNw>rvU9jGhJ%iqy9K3v7>1 z6l8-@X)U0a0VRmE26)c<@ydlA9j~N|Re+)*-KbOcS1D~w^Dacn>3{-}#y>QZMmoKd zbD46zXRhZgWvXvR+19YB))U&IAX}hqgq~24Bhot*hNh2cd3LrtGdnw2fX&*pYMEc|&*1IL$i1Z^sDI#4F zo3e&H-2*5PY5YSoDV+H9Cg&5CYe%Hh6=ch6L^@nSjz~Ky$PwueyW0kEMEaqE9Fe}D zAS=@ISo!+}qDUM0p_y8wpNz;X(%+?;Mnw8kn8u29DS!l#-mD-;q{{$h5osso!jf*J zG9FNhNVg8R<+3S_NQ;p&5NZ5FGbz&e^d{%$lxs(%_bABbYD9Xaf*g@9QII3j!xiL+ zbew`5k@i%O73t3@(o%sa(nfx0rWWa5yJZ$>hg8#uNWU1CAksGgB#3mof*g^)4=9UB z&r~if=|(Cy0!k6-nAns?q;mlUB8`7&CPf;b-sD`ZTstByR*)^P5$R_`Z9_RCeN{n@ zNPnXsN2E6>$PwxJ3bG=7lp;M&Ad0k+ADXE}dh?LXB0W9TG$PV{VHz7r2LVVB=|Ku| zL^={s7LjfqY`t63ja0q`lp@k=V^bQDZU7XBH2$HP6lr{Vlk<<2Ye%GW6=ch6L^@eP zj!63}$PsCof*g^4Gsw1$BhoDjvLbz(B7H(2inNg*nyE#)ePCvhzLIJh5$WwPjTPxC z00|;}KtYa3uLhJwqyv--OS+ND3_vL&{c2ZRE}PPbv^`P=B8`7&CPf;b-sJp8<=PSH z1_jw%jY!uh$PwuZ1vw%;Q9+JKrz^-2>2L*Ek$y{&b`*#rZRCe$YLOl^AhSsOrkX}X z`oI1OBK-(Jf=HXfeF!-s{Sv9Ni1cFR-I8vkaxY61x$!1)c0VmPr4i|AfC7=mKQxmf zjZbfK9;#eBB5kiATV5m5|Ms)3;fQprf*g@Pryxh9_bA8_>6Hqq%FRDiE=RqV2t<)K z@;(|g4mR1GQSU?K&0^x&E&Lve0r1fC%tTy zoyq){6=ch6Ci5RsknPQ8#pzlFIU@bBf*g^~Rgfdn$qKR}-O85lFAzoA$PdlbB0aum zn(`tmPNPyyBO+}D(^!#y+ru*Eh_n;Zg!*+vx&x`Qi1a$;-I8vk@;g8&B0VZLr4i{e zK!Hf(ADT&##-}$q@1x9ds31qA8x-V-bd7?nNWF_t zuN4AOq>cR0OfAwUt22xAnpD$>NEgC16lr8Ke+Gb1iMH*{;r>hoIfwh%fD%Mnqt}i8 z+0A;lhfj0R?Z6TxAMV$yl=kRqR-E1k6o@qbp_x3~>-0{}H!Ih+UoK^;WeT#X%;A2% zf^31ziqkX&IU*gZAV;L_737HYzg4!`tVpXV(yanfq>cR0OfAw*C`HD@{Xe>jelq+1hgbM0%)#tVkzNq+j(A|0S0N2KL|vWRqTC+ppkZlv-GpcIiVicM)mdNrUxr11~U zq)6k_o170)t{st%RFEyN5ouQiIU+4kkR#GhI@$(sMEbIV9FabxAS=?j6zR1BQKXIh z&`d4T&6Sx&`ioT4h)90~(^!!n10X@97c0mS=}CaHh_q0-u%sKQ^aYe6(ic0}a@mwd zq+bFGL>m9lOo}uF9kUw?V}(^q%9O=MOsUd ze%0Qz3q{(<56#pf9e`3~JluP!rV)|8)hCqiw8r zOS+NDp8=(a^n%!wMx=KF3Pc+J&`gRnKE28Lc;(s==@bRo@*0s2QjjCk3I#bL-QL5{M#g8Z+vCEZBn8bB!`9TA(-h;%lfK&0^x&7?@<)0><-Dc6ojceJprVasbo z`jLVhk-n%PN2CuZ$Pww)3UWlcR6$mx-U`&~D1j)_Mt*3f7U^}(GmG@(RMUt^C&Dz0 zq>&Y;z5qgzTE@(Z)BXx_Ci8~@N)YKfef!8u&8&AjIc}!Z{{bi}(#VR_>e!TKGXG&f zfk@*Yn#sxh`1B^{GnH#+GJm#$Yd0sYSYfNoJAuNHvX!^t)m!(#VR_p8$nC=hA05wN2IG1WFzTZigb}c6lo(rG*gRo zZDD4So|kGG5$Q~rhLJQP(oq0HB|0KKT0xFT_XdQZa*I!Ia=uu(c0_uTf^2z>NM|U>5$Om8IU?<(AV;J-eA_mTNIz1L6=^L+ z`l3J-X(K;0Q;W0^rN}r>`i_@o8WHLJFpU-IH2@Ms`lx~&k=_C*i%54@E-dLrDn|fH z5$X3ke#n)}rZgh$j+B8&;~$zyk;bPtIe(yBJ0g8vK{i(-(t8!;h;+4r9Fd->AV;LL z737F?yn?Jq*HEOr1fobA`JtIwq(}eoLspUQmTDRiX(>!&Mf#8bSur?~v@Ozv`gKJ5 zZ=}j1(w{2tmUJVP-vUYz>0z-cjY!W06o@qbp_vqEe0r1fSmoLgX?F$L@*0trD991% z=il3gazwgWL5@ftR*)mo8x>?lx{)HiKp={=ksq3=Mf&J}GmG?!RMUt^kArEfNcRH} zD$xTc_ z=}pf6{LWU{5$W3svgI`*{hfjwk=~{tN2C`k$PwvD3UWj`LqS%g-o>cb2!SZlMt*3f z7U`+~N>g6sDyT`RrV){LglViuJpc(J-9CrHFJvY)T{2 z%K-%NINLV5$X5e*jhRw{XjvENS{}bBhq^nWJOv{ zk**eqB5mY{W@?eX^mS&D-kNF}5$O_`#)|X^00|Hq#|y<5_aRC=&P z$%p%AVpAHC)&UAc8voEtiZnjG$$71E?TGYp1=;c%k)Ey~N2G@-$PwvS1vw(^t{_LG zCCSj|Uxh8YsqR#KfAN`lgUY&Hgw+MlE9>S>JZ$2s9TN|ovg%(G51F#+t%(OuyL^}H z&*|kIQgiu0ejYTf-`|G*sphHw71k{OqO|UaKHf`0vCc(#!w(r#} zf5xvF_4%2f)hvIu^oXM-9y#%-iAPVI^UP|S<=4-69zD?lU-NFh$EyC{w%Q`ktL=f; z-FSTkU%h?L8;957crC!o-8y5()v*1e*w;4oy~3j6k|w21n^pM5ZAyy^3j89bD-6HT z19I`asxD2MH!Uh{QQD+Mvlh*pHEGtYWs}n8Es9G@h(KI|=Q7Y_*R^~Ps` zk1XH~hT=n|XoE8Q#j+!Z2Wk0HSXf+$wDsG@!+bKhnugcWc&)_iKJ0r8uYcitAK$Az z6;7Aqb$@-G=PycaOXN`wyFPf0!uM0~dKllIm$bFWvbGt%FU0Fq*{9ye*G};ELiwlG zPWKM<4y!$)_89ND+T)c)>R04mR@>g|T)Ru{P;WQnE zO#_jpZmzxi`+_`Ms`Ct>n_qo@=P6!ZSk%B!gT84pFEF2lW=~V|y}8#ENRini@jA3G z#{L42(r;nVwq7fIuk_mI?2A1H#!`c}^sIfASAqTgjYKNFA;z97fGv%ETYP$6_Za&b z*k9?f^Gxs{b+4OJ?GcFndG8V^4B zk*&~tqgN?Yx|d>D7X^8i7`6-0qQ&^jmOk`Omi2~1nEsjgotkTc{EP8Ut&||&BBU+E zx3ETuiA~xf@Ye+TYX&bRcrSrki}9P^vuv%9PYe7tK{_h5DgK%xVRO?O`8<%ZDC^`y z_DO$A_rRL_crg`w7=LpQ`OlJ`eT((>O|22$@w*7`O|Z}9B(5YaP|xP@z!JAaj%&ex0Ru{lmE_0Rf!g8i}(8RFTI74jr_6Y*_!0ANxsa1hsr1a&5%a;XUc5+ zH$%Ho>*Sy9CH$A6^|JEc(ePgm51o-p`0oUt?Xf5SCj56st3|g0uV-{e!Y}gQ7pZ#( z{P*!XpdI^V=6?_dCc=L&v{*I14@AkknKr>tCGR%S8-x7%V^}vFr5NB1!+@nJ@~=X< zy5~(T%4gJIySG5fmWKak_}#P~{8Q`Xza@^J^u=RiK_>l^|7x!jhCW@5eMheg>d_O& z!)*NbMbBaXFGu>$XuF;$cM1IUMJsmAP=6kAJ*2EOM{=7WJO6ta{%3mQys_S%-a+2p z;NuW)Ftj+vx=Z|atTz+wHpbf@`4@NxEB;4&+4-Lb{ud+leDHsI!2iD9QHi-)pd(tV zD_XxD`0s+0U7_Cs!$(&ByF#t4F`O^(dVsZ%|4R7C690x_yi<+Si;(|`-Xx54$p0Yx z<=^Jwq+xI5U4xPz1pbde9mXN=x!wU8`L99RDE~Ya$;$r`-j!Z0+J2^YZI1sV!T%-o z;{Ohe)hO)Bm&c{}aRi31F)Xqh0d9+B*ZD&c|Q=ZL{J3bo_&e%e`j||L1rQ zct5EZ|L=hRwdjAV@y9LXUw);R;RtWMKg6&0XL|eiUwD5v{lA4T{BuN}Z|msogPODd zE%1&E`rlsOkLuO_4|=CTZw1gG``^#J6VQH3GxopNz5af+_gAC|+y5hPh<}FnT*mhA zh)IN-k>}4){`b69_(tkHo{9qP#q%YrOJZs<0 zNl{=GZ{Y_e71a8)KGG2DKlBs0%lr|ZD=|GsU;NEics?b2WUMZjd}judmg8R;wTCHL zV(}qm4{KmQ!<15f`l^5VIqH{Oqy$o;@LZq>;~;w$RES^v6MG_Z<|ZC^#?CW_u*~$t zb9$m2ncDMrrlTE4nBtu&rHxFYdc4sW+ll9nJl~)np3U&Qve@Jx&Nv?C86ESZ9Z^X^ zg!PmX$uz5!g(D%Em5@AGO8G|bv|&1)H8NLvrG5Q3j<$75Ir9-ND?qiN1C5p9O=Jm=%y7O>#xpVq9WoI$ZH&9SclI7>=9j?Q_GMAc9$oH1Zs zTL5P}lpqCbSl^AU+ydivwr?>$Tf!UjZVungkZTisBgQ?nDl#KH&Nr||JbP!$vSvIJ zXRm09Pu8Oe{+gM+(wmwX-#$|CJb_vvpB{d(3_NdR+J{rY|=B(IL zSSRL6ue7iK=Ei@{L9t&kI+o)lQPTRAURG)_?$tO;FFLSV5N(hTs$Jqg>mi%Of0=0y zEdwaS2j|T=+tUiAXpJ^#hc+n3i?OgAzZsj@&Mjf*V^6thLCzVqK)SZbf%BX^|Cjhr zt0q7s{#PJfbNmY9e;asZ9IHTnoZ)MU-<&;@_}>z#>btdpuOgJ1aZz*{#(zfAF#fl} zY(yCUJK%c}&ax{|BgX#@D6ho-a+HQ%O5u+&xD0qZQ!{=teS4r~_$xupTj13Svmcyk zY>z#a_+9_@?}&EmjCLr153X9UZJL|>efVZso5Oz-vxim{I8R{SJY(jvnvMURVOasJ z3(h<`nzFXXXAAslgFGtWqYK{IQ#&G;GQ%hPF5`b&Bbw-dD32_&#s+x8D!B zw8ihXu-*;z8i4)PsO=!5!ul~F@qYl)569dw+rI+-cS9@r-X7ivl(jkXmiSLA#{Xd` z*C?zrbVfZS{&z!(M!|9@$}}4K*aI3HjhV4|V8^ zR9wAiSp4UC5PKg-kBlNbLQ4GSh>B6E74Yypit&)~mXV$jm7{?|ycom6_|J1Kj!KK* ziCA%9#c0Nn2#>#9DWT@eU`gMM|MXSgP2xY}563eS|Cvu4#0|#2*7(jNFym|mO41T~ zk@(*MHE9Zca5Py0oQTB#wn!O`|Lm)bQ!FP(8725#ZandfrX3K85e<$1Ty5gI|Imzc(z|TRS0jThx~EzY?k| z0>(beNYEJ`IakT}-yH}w#MO%?#&3Pwe+0by(0dQ$-2*}vxh_rr_ve;`t{L+`Nhe^($Qpn1msp-3G)rTUu*>#|Lb0g3=zkuf0XZFxk`Bx{?S)?+)=RjJLz~Lx#{XU@Z7-C$SAd66y&r1Z2f2+y z4Q>2q?jG{!gEr!YT=m-|{_kmynFm1whj}Bhj?x0HIt`zU|I=~#RSDk5fhUgtCH{{D zBJqEJsCp7?8UKeNmh24{%e?)-gO2|rP-4b^@;cpUX%Ob>TjDpz7yE$SQtbb~#Q!6~ zxsLxw;FrYz(P;Jkz%=9kEU+BL|GC}-sB0>?SX*y4UPnT?2O^ptkCmfJ?^x5n>(~ArvEtGh9;&g1H4M4UM=SKhMSzU| zXPEfEZzTRtM>{S;i=Byzd!xADINO4SN{m*T~lE}mtUqs9{di8B6oMZ5AW zqyrSrD=2LI=kbnbW3;LQ!c}D+?PNT`D94z={KZ%OTA!CCR^qP%KEwFm6HHe_G5zpj z{I5pt{Ya`D%8X?wT8w2njro!SJh_x zuStmivtcLk|6-Itw&U90s~?EKNad> z{GS7lw_`ncF*Fm7|3@G`orZL~Ba+?)zI&m44nlsrBZe~m&&A(ec-42ap?mcSa|L;(@hQUCAFIQ)1C0NhyxY7_pwDxH`2Qq&)&*$I<>n}{ z30y5gS^thz_E(|*-+7M%eFNMx{@;x{G5$Y@Rp9$j;-8xF|61>D^nnfDui*P(l=2ni z!ubCN`pIuh{J+eM|IhQTsc-Yce&_f<9&v#em~%{G_Z^jQ{{68E~a5&=r4CH<|J`Y50HvSI>D;=@#C=>q=Kxy}c?x!KeZiqX3p}$Nq zQHAk;G?;6Hei6q1nTWHqp}jdK{_mHI|22qw_1#*dY%NT*?2IUBt|--{m+O!9RL5p#Q)!Wzx39j&o)Ot9qPS?*JIxOh)azB zZ=*gu>aK;F-}JUXL9e6Njz%xi@&979^)s?U>p%Xl^xJqH{K@`2ueHzkKgZ|z zU*i84Xr(xJ>D3>JD4Ntp@{8s&>suH za9sT1HBBd*(ZFI8e*+fu}zeNFtCo*IA7K@GYgmM;DO6n}0-yU#NDy%fjMtI=v- z<66Hjpr41J>kUAjL)#L)A1!+`j>GqOOAw15Hu|{_5uhJNP_IHiygEy)Zt<@7eyfgO z=O7Z?YV>ml3M#(xmpEz>9>4yKs3H2<+yB^O?|c+D((SCDzoCpT;%w|1Z@NFqr+!BJ z)X%3V*9HDG^yI72iUqhPY@z=W+M=J|-Jk7S{fzWidTo3jzdXMi_!#Lo^V@lUgk812 z7D%*o`F}BiB$AaO`6b^4v-|CD?hE%bkI=);`O%8A0O6lpXF&S`^WrRa)uVv zaBvn*t~D?wX1|n(*C?=DQn#Jg$LNQvh*ATo30LsAh2@m*%rC5i;IfA(Hz}Qbx9{Qg z8N4E;6dpL|E3-VD>*T5#ulJG?hAVqqO=EqS8xgK~b9R|4TRU&`!|QN(y*lTNrBykf z%Q+=sh3ovxhcm{qiY`}~NljZAggHrT=sdV)$3LzM^H0_{>4VohaQ#bWv^gh0Ozr^U zj5KZOk869aP!7)ew$!f8ci~-BAnfyk971Yveg6#XAS75q@%Yf_tf1 zesZJAxRNU6Ax?yQ!fj{YM5r9Tw=?;dBTcA(p4IcN8MZW6Iyk#3E8EmRS0}lG%QcBs zWW-gG%hh*A4T*sCN-NPnqXkol{y8JNv;PX< zR1ZtW?<@^h$jK|U#dt#aPnIeA{k!h2P?*2BATxkAMm_e!)= zCB|W$;DPhQRSEj={{c8R;uXKgyBVYkW!#zH zzNi)TKL+i{x!_{FhQrSgv{3=hGJBwmgHUbGbo4ZPip}>nm>(#{SsdpWL;d%Hy}MBt za-AkMNiDF%)FhQB`ezj5IxkmAsYYID!mE&|%T}-p_0O4hcjH}|T>qmw8R4kVGJJ0b zTWU!3Uk?9_Mw}7gRZhGvO0G6w3M!0iuzn1~eZWm?8uU-SJm~{S}xMDhF%T_~Tsq zaAQUNcZ2^yIP0MPd3}KBpX=uCRt8_vgNJ$(P!{TcVxa#)I4cSDKL|dC;n!f;Tm26M z!(PxT@%kT(wrG!3hoNpvt`bCpf_?G&AC9x$Bj6<*{|vx-)r>&@hoYT*%#KxIW@{YUcrHpI`kw@wQ2z%Q{T~La zImq4Jj>oydc>M7Wx&6`36Y*LM%ac(~(f`4iF&zu;55ivVDaK3@Ec>S^tbY)IZPSJEC-zCSFnhyo#+o_O^yfsDECy)&lQTXlF1?{kMgGUPr??#bYz| z72TMsEqbXBolyVXjV`VJJ0Yj;n6)TH&V6Ac`tJoR(SHx%yplxpPc25bK3F}W{wLu4 zX*%@DyAbz=MnwO8(Q>@fVmJKm3*JTlyTP^!Y8qhlKh`ka&*;Bj)H!|~2%V1vZ>2cf zoB{tM;bjs2N-&R0{nxi~3eduYK&@W+{o=b-&ZaSp#2 z=g=o(4&X?m+!>rpAoGI zI35e7kAhN0g5zE&e^c0wGWs8iz9;(U6-%R_CF*}X+O!ZY$$KrS|7!dVKpotT`kw^- z4@H!q{ttvI%Ain*|Kp&HQP?*N`PSt0zYj_<3^QTvkk?G$hZ+5kLB8?&KL+zw6R<)t z9W}iI^Ttz~%uXd=_uaM&-fqsrj(2tLY zWlit~`qRDc{vgczU5y8DJ&aa;(5v(Z`_xZQKh)2fKtHYgWnO201N5^i+Ov-@`soOU zqT55c_PGu-m5aUYXpcKF+cgC%2yCD0a_zGP?ehitH~ZJmF^4=D`eOUs2zIabwjz$) zi}_7=8|7mT0A*qOyn=fZubszc7%E?R4pygd=3+#6$;jf*VBI3*b;5iVj3(T(YS9rEg zUqrZHFq+98lOWGqID^A^1a3umg>zPB2lh)z`OY&LDNDFlY?9x3e#O#o_J_V%UVdkK zA~HwD-!gkeD}LiBJIls1LT(%%vxGcCNbB-Ul;@vfL7()`AfN8mgiOHysAcK(&RjYe)!^6XvPMt8LxKd_+RRs z-#@RN=NSvn4`hao=Omm_k~ufF3D0UcJHrz2UJ%argtg0`L#Rb6k+tUe7{7;Yz~8b* z&V*Oz4=ZqywPM))DO)$EU^HQ1Tr2aW~AqwQY z6)j|Lj5XpJrQGc!y2_UaXU1e!l=C9IFNjxNQUAQom(La=`@BObZ12|a&)Q_ue;LM5 zY|++8(-GtJw)jORIQ}Wb(UDi-auFM!;XJe-O4b)`&>1a5{dY$z@VZJ~O+)=N zhd!uLHAT8JCx!l-{n9L|-|s($+C zv#J;mI8PMnpV$AlgJ(WfjEd)Td8mKhb;E1^!+2zhkoZRZcSX%P>&ceT`schH?|Es5 zPu{V|xeY!CiBF%ZkN&HW2e0xUfzna`Lr`8mi>d{Alw*|9|AfRg(Lf>2j6(hIkJ63C`ScK^-#yU( z9?hhx(t4bKLz=wquR{hvTfS6}*P}KLG0F@zF;cPQz^6 zd@!6%|NG+{VXvJ2=NSDT4i7~*b2uKYvIuAPbBzAaK;AW|O&ip326D-!|1KyAkE+x^ zb;6?+uX*P2%f~lv-OL^y;TSth!8G+Rb7ICI<&E*bE9xrx?~l}6)!`M&y#9G0^xqfX zs<3x3UZMW^e7CMCUM)oZPX=3);n~CN&lp66!B9<8FgzCDr-JQ0@oDux4f8>~YHBy@ zB;{Lc%urDOv(cg>aOOWA`7A)&SAyXRFhKoJ$C*`c*irw-psw@5&j7HWWuyLS*$Hi- z^?y9h7W<%Wer)uAGV+{_b9WC~rT&jYo)faTN9i7f561QR&}ToKUEgQ)e+6bt%5a9d z2NZOZqyHmN*8^~6P?qhdnBQakzdz9bOZc@I9)FMPL=VIjYUOw>!&ND_g3$%A6aBvm zuCwd^G0dy52M(4RaFn!A(~E-;EiZ4^Y#4Ft6rgPUbOuzY(6k@&1Q- zo%LRG|2nif_5YdoC9p}DU3n4LO4V2Y>rkryVfJn>|44r;;{O%6&an(v6@3!upI0!i zL(8uN)6M`m0_PGl+{7kja z-;h_9Eo`5!&^`zGk753;z#Hqg@!3AFd;9yR;=1?4aot}J{{nxQcZAROIo4(4vZ`J4>apR2;GD_5I&ZpMw}=!f;lK_2gM9X9`&V zaP-8x!}yF@*1r-6pZ3h_9Blo$V#rY$pBl^h%k>u=F>vEJyFXHOLu!t?yJ0-h8^@Ed z{=Bkb2=;{aXRnRce;^{!9yn%5{j0ocSPaB#FkUQ&TooYg&Z{0;p|qSGvGwQKG4H_R zYO0TREyOoIXM~&7pXZy+PztGkXYB1`P_DKQ$1kp|vi?2cog;l-VbR@K3`E&@PaL0{ zzBj)0#^|SsNv-QY8gaD}7Kfq!2Ov7`m#hDQh-$~wB1&nKL;N6A{@=)otQa7-oq+xibi{dYxu21V*W93>xyzXK5C`hkDm zkIAteH`ad)>VGKeKLhpO$JGB|*d1>0GlTlq;JAJ%>c0qUVAGxYFT>b~^}h;7=d&>q znu#O8NrC=FL=K`Rb5_pA=Wm|OTi2zg$FBiAsL{}z;;^*;&qKO5r+ zZg)EM|1Ijj3}-Mm;3&_n*xv)IRUJ^?HhyQU+Wdg~2w4Bsf&Tvl{V&5&{l8eF+smKh z_wj#;W7AC7ZZzq6Rl&)~buU~$FyEB_0JOxpsBy?2%RdjlOVM&H|L;(@E3oo+hDp!z z_wrf(9{xC7tNbEXsG9o&a0f!APlH$B{|oqk8vZ}QxTgzP{xPnV4*fra-lzS4W&9uD zhyKIk1S4qposR7S8b(Tqol@F<;-7`wUp!1iWod1U9z0LLS23%TksIV}<4pYv-n zreSJcT`K(NpQF|M%N1lie)8zfE7I!2e;HyVuTA4QlJMU$7z3o$fLF9}e9-~%Ncd-b z=a_^1=buAji&29dJ8`W@#usvhdX^b>US%r$%awav2_hF9rQrI3w4xg<29$x9Mr(+W{)MmwA>=herZke1g=aU{h4pMMUB z_ovW`_w6@FYR+y8{~ZvO^QULqb9BP{L5HE`hTwQe{(D22eKPUS=RFAjoXM(2n$CD1 zj#qv7m*?P-Nsg~tAuXRsAiX24{dnx zOJ|e5Cp_fa_!JV(hWKc=b~t)A0eia{{zt$oXXn$mDF5RywipNxV-5ekFk;EKRbfV8 z3XJv&_&*rAj`Mh>CHW_kzJ>gcG5n7J|HlOUkHr;DlhYFew{fiB8mjlvYGvSocR+{ycgMLvzHKP- zA^#%`|AR2j+86ED8Dr@^Fs2-uFF8iKA^#`9&qB;}91i}cpya2(>xp^O&w$c+zSR+T zip|D#UBdrGXca!6AV2?SVXkos<}Pl;b$`cUHsn6E`?VOuo(%pkG}m3F7a`>T4qRcw zYtn{b+$sJ4PVj$!dSalPFjFG@{{j5JZ}@)|_X!LCujEa?2ck@SGcFxy_#d9*pCjn} z{2z+(=EQ*i@!0GVy;4_&*!@ zo`x%uEdP&Ue()5mT)dk%{~0(}S&bQ?yA}Tr;f&!r!~bh})A#m;|NZ=3e9eCsA6KUN z2m1LO?18faY5!BqRf|hh`yT{d<=YO$Oq{g;g{Z}fp#4vUsz^al>ZyB$M|tGRPY9_F3h*J_ZQ*6z||psOvKrfl>dL; zV4vmxAVEL&Y-8u<<>*m1o<-PSwj3PQhzB0w-7^dx0lAOY@6dzH0@>8^O|ELO*DP6_ zV-b4gIEt^ZG@%9OgX9_{&ew3ZD7vvmypK+v7Z-m74rjtx3)esAs>1oPxcUn!clvN` zVCVXC+|2Q}oJ%CvpVv0DiWVNfI3APw^MCg2Tz}q~#rkvYnPaV;>(BYHmN)`%wK%T+ zEFH&};cQ>D2y*QON1vR75j1F>ADc29m z|4(+R|9zwgeNjZ*&^ zIHI`qy9CFGWvKs3%;cSd@!^e5{!;%fxE@>T|DuDl{@>^7|M5=sKhh`vBeBLs{zu~~ z@94JJl>Z>ic=ba5r(w($-Oj+e%P)fRuS5CoiNd%Nn&tll&sSK46_jsxD!=%D1OD%X z|F3rPzndTW-|8*)clPgO7yM+TmA~-V!8pxV_&fY2`>nO?7uygE(^!vTYC%HZ?x%R6 zt=+5-e&g(oe9}UWfHpVALgIY4d*!!{lRT#Ij~1b|9B0JFmdbt$OU6CXjmIjPN8s@^ zJaX{}A^9>TXN))lB>ri~7dP6_Qf89)DRWfed?7uvjQlODB2p%LkhD?{Nfnlop2Ll^ zZ*t`!ebJA+Bwsl`@|Y?9Z3$Tyj@@~r30sMCUYvcDjb-2(1z&RYpVW&sJpS?uNA96T zI8(_oM>o!4aW;w@)A5)VjxM;DvtFzh_sMvJZ5N)mhgaV+HA^biEFq5$jHL9+U*V{M z9+_HHV2^%MvYpFETV6*=4|2yb{f0g{JIA^)AGQ+zxc0|9*miPNCsT0Lz;+O(!*FKGdMF~9h!H?GXFm3gf#x!~A_DY%E8crB|OMdivtuKCf9 z*TAuMas{=_6v})c?^0!HWpv2WNxQHfau+nU#1<9x@$SXsO;dmveM&bhGkY*CJ7SYEjTTll0$){7QwYu12Q6w7FgD|@UjTVKXUY;CE5yaUW_ z5(~&1{YXTh6>G>B-$g4d4Qwd z?=Z=297FPs2y(*6Le+3Rl;7E>S!(%j8PXmsGj+xCa=wmh_smPqd)U65kD(6P^IPJR zI^+MA;Hm`MQ8-{N_$+PqsI>UUFXZ;JFT4u9YbzzQ%0wtn*T&>;&fc zoN~6BjemURLnqXlS0{G{%KsR`rzn(RFCz~BJ8LC=OZ;n({XDMn>Ubh@tpl&n;8SC5 z{Nq!ysVY7_!ZUN$N$nTLKe=Lsv5OIey+U4mmm@h9Ej?1=jKm&ln=35gi#=L;E~66l z$Poxzll_AInEu2!d$&Y%iD01$bu+RYOfP-c#y>JdZ4#q5T2NKt(N}nH@(vtagj&QVCb;jvwge&S2|EZ5oSL!wPw`NCBMo-5k;Cow~=ap6^`^7IBiSDVjb z;97qe|JZ}1ENmmLO2`vIc&7p*5RYr*gZZ$$R33X4OT_(!2cV<>*9H54QCI+_(x@N<%3uLw1Q0q6w3Z3cZKl(74v_1u#D6z zJ+QU;Wbq0plK-KDR1dGp=hZDT{$mde&tD;u-_j)O^e~@F^&LkyjOLCI0cbr@XgRX_V#wL=Vs&IQ1hEJFWh*40b7ax6+_}5uS4g0 z+%SB4SYPOgcRuZhagi<1m%CxD<6k#i7Zt|8-Ug3*E5ms($9RJ=BN4{Gf#!;;eyAt^ z^LHr_T<_skV@{+5vlqNxhv)tyu_ugwyB`-u?Y<*33S;t@5???X|x3t+i$$ zCDTdaDlo2lJ)gUJ@)BZJFYJ+i&T&-2m09azd=s4)7wd_uThtxyEM*KxR3a;XjTNRy6;Hals$F*;iV(W3}KkGv?Ip{SPUovN`xH6Z1Mb<~h ztKD@-A1zZE;x}Cuf2P1W*B#3B-)Q)t%($~g0q&S)CfDv2<1Q7U|FpdsoB^b~yYt3~ z^c{4Z)Hse+tN-+ubNp-ycVj3?nER(1;~F$t!L-*oo6FD@zLnIiR#G=35$=IAle@`C z*);51CH*%aJm>S)^%sP-nGz;r1)54-nF)k*dFtN4^N~39pMG=$$RXE%vnXX8sm;M% zS=>=(I8x~9K?QPgeukkde4EH?4)IrzR{iJ7$!fYeNc1`|E7yN(7`L5>)vgBk^&wmj zg!2-ObN#oPoUGZ?;kWHS?`*qt)PJVVQjMHVF6zJOJ;FB$|Ene7>W(|sJok8*!L>g0 zCH=RQSn9viuxN$;+d-;zc2C1HiHqySwN!x+r_g} zpq%^l{I>ebAz?-?y;X+1OHx~8ZKCGmxc#>hkwEee_SX;2Qj-qT=`BDF! zg?)J;qv`5DeK5}c0!nNgJTU4xrx5JN4fVN|PIViG30Br2e~-6ej`6NSmvT ziHv2QO%7+1yDLatiKHGOzun|`eg*w^jQmUbZx<9${~g7We<;I*e#)!U7z&d#mubOm-OF*jH}-QH6~L_kKj4{DDa+#hwCPuwn5#{e^-(3W2D{6 ziYq&rr}81B?_owJE&_v%oCn|=yc>A7lje5DOFk4*lnfE{0P3?|$xFQ7QD_7mK3}?}GQ;>%S*?{x~BTH*(JP zpR3K^!+rPRPU!Ul*!?YDyz0MO7@7GIw7Uaej{BKmb|&wB1^+|;Jr7-;Apd>D3H|qC z(tj@#>xB;b@6M$E9%IJQ17Q1Aa?17JBhd4g=)afY#S_d@DKLladp*+6ujw4*rXLhv z2zRCe!Rn;{+)rQxl2p%=lKxwpYPEYII6BpUWUD7f5!aT5YthX|c91={kH--x!RffZ+X&x=O+Ea6=hXLClO0w;;3z~%fTSHDwr0NO2 z?Z|5AzdI;t5jA2wUn5%!2au8(T<7}l_D=fmbntL~)%nXaT-!d(nSCB;HH-9I5}lk@VmF(EQP) z|DH+u?*{6L`tKoTe<{beC;j&#w0;0-c$s-r&ob{T^xwCcA*uem4;~L-g(~%*8e$)% ze1SEqc5qBio>Et`p3o25_20ui((hYHdkyO#eVID(7-OQJCe`=RBhT|ORR4Xi@Lp!) zh5q|`(tlsa>*q`O^pxwr_XB4~{r7kHX#E8JcQ5*;z-mQ%f%#?dei?r*XJ)DYz6w?Q zas7*4^xw>EC%Xcu|9*sgg#PwsQ~WFF^;`g<7ty%&jE&xmR(SPtNO zG8p(bA%mA7bGBbDLAP6fuR}JcfrWF%k06V$L8`33*Y#3=k9Sjl?;_2!$jsg3|8Y1J z_4iG9(>;LhdQ+;u`Ut;V;$Se$2r5QsJL~D%vl%qr;yjUR~kq z)PeU?v%gvxn|&wM--X!+SjX!sW`J6MTe+LVy7J?*sK4{GsK1{~^|uab*oiiupZ&D3 zK5GHK5kSxreE;6g-+xT}{TrzL9Q=Jx2mZc;`uhX;`})M+pCE-l!ME_)* z{{Cy??>*G2FGAZN;lVYUI{zcE{0w#ceF*p(wE$q0;pZ9*Q zNonHO^trvb_f(~~ri@f!JFewUyT~gEwsOMO?^Sg{dt{8rX+_n3>{w7xtGXN<%NAbk z-L+izOV`za3Z4l!a)75GhGjM{c)#i}L3qJtish)n??_ zw$-#NR2Q6Y>e#k+cWr(FNA>tC@wVZ#i^~Zyaa{401i9zPQ(yS+IK&9bv{dfX0F_4xY{s+c9x?>we$sY{yQ2{ZCF4be-N#k;Qvf=8BafEMzzUl zscH{$#dk+oX2MNwP*?Te@7qqe<`iH z4T=9dssHEG!XHncx3kx3&)6)c9W|bIaq$0Q_^;ipdj6k+bz=iG-%Y)lM@!OO3m4E9 zt2SIr4@CZ7MW5o8@xKlJ-%e}$5?ZXm|2O?s{C^Ps(tE)c@MustYR$|7Y{xmU^k@68)E;T>dm-_$=?& zvcc#vt`99ArPaWsT z)%TTyJ)XShWm(=w2_=8TC@10tJaJtPeWbMqWa@w`pp883A(iqr_U|?bi+IGJ`8&Sk zv+%i#@ut8nuJsr(wsCWO>`VEqFClu3mS>5UX74F{iUNY5N-5{yZRX--rQDQDX`B~`oW{7g7On79P*50Ks3yV<7<)E?m z`d<5Ic|NZ;*kjfM%RX%MWc5x!!AN_CNg!jBO_L(?~hj>T*5EuLS`tVlYzmN3|q=YytQTo_PEoI9m z_MN4seP%5HmMQ+)0;H1A1P?=YwU7i%!WR6t*Xy0Q$p^=Gs|~K;Wh%$P^qCVPOIPv( z4msjeVH0wB6du5O7~1O%Db;J(vV9hL*b^<)U+HHq)%R|tNMnLT?{%RQGHZhnM6I>Y z8(xcph%FU_J=YvkRO^Vi1^tE1wNf1Ui(jGlnR711#_MW>xGO1IE@B-sy?|YR%kt!^ zypa3et6u^WVU@qGvn$>7Y?RKmJQ0%6FM3l+L!TK#8-cl151)QjQbj4!+bQa(J_q8d z=ajY65&wWkh_$GQlOByqtkP$Ra@QcPT2=K34P3Q4#8r4+RbM~cKh2RD^VFBqzHqMp zgjkP&&^5->ze~8}Q22|f|Dt9}qtJiaA(T(;K&~n$XQYDOTFRjDs}13gtQUGnoPFbF zat$dA?|D}((Zfw&Pv@2D2WOf6NTsBPx3)Cb#^s#Sn)Iu^D%PCU=A#z1=IfRAyVrk~ zs{H6js<*X%WugD{iwo3*Lk39qXqW|=n96?(3 zpO#SfGjlEC(0^Wq{&Pn^tsTRN75=@>u~qkohc&re|Cz@Cpb1}i_b7DDYuDxRY4!c9 zq2wTzV<|cI!n0N?RqiS0p`W|bsOOFrBq{D*hS6ry=f}D-lo+OI0)o-lw?gy9%JJGS z-6?!5zs@-Dy4s-rb4P>Ff9{p3_mcisx&9jkEHM{C8(}kkJK8Mu_HPDSWkYZ4(0}sM zJ<#0qNsXyZvp(Is&(nDR#7tXHwL!nbT>rUlp1YoDt#cmnSnl=h*0WH5Y~{`U8l7d~ zj+3rv==zNAv7l^*{tGL0fwXEB*Q^#NadCe)C0N<5Hn>**WXjU=>8jI?r|Kte`D3|v zA2{`&{?wuW^ zLQ0kN-xy*I=E+nrncPAD3CGBkCf9#bdn%kz|Bc{nJ=Q1n-$>xoN8HsTf7ij4H}wS6 z!*v4KOru;a_v$*=cXV#cbfB04G@<{d@?;9J>w!o8H#5;roijS|q&f)afTOt1CI`K_ z-LupkA=Q7bn(w}n?xZjpswrdAu7MQFkly^J96>61=sXwqqpTw*SGb(bIoE#^fl_}t z_1{c#s5S^uD<#Z9rt~CqmCR94VkG5E1XexG)qmr7>T2okOW6dJGr>#!Hw_xiB1Szi z)qm~-Fpy^pkViG$Lh6Jy%9^In@`CiVdi^&S3w5slW&xe;i_m|wkrj`z@N63L=x%Ox zlsAIA(0_XC$?1~*lMAEBG4{1|wRwFf7XbHYa#8%tR7h%a8 z0wtya-3-cd)p_^vTui+Q{ii=)3vtzdQ}9o4^{*!4&*yIz_bYg(KWVQ2R`9F|U!d`n zH3x|MqW_#%phUD{nRE9__21eA^H}cZK(S%uJ_6{Je%EnbNLf?iU9SJ;gO8rj)>Hke z2N7=)9991O)87u^ORG=)biln=m{kM^F_E5?e-noCk7Gj$w z^q;G5EF(Ad-?_lL7I`=id`}_v7Jk=P4d1!w1ohu$&ixsMQU6`Zc*4nWc4}ORnmXwGV-JTI}ga#GkUXy91id|3!kpT`^doKPzYWMw=)co|AoSlQz--S?q91=Jh3@>H;tfc>r5G#Wk7gN?kYQhN0m;;Oh zp_Tg2S}>F6^WfV7=zcl+@2sN!+XEz_|6WDRT>sq&9jXnX|K5ZI>yv*0e4YfBE%>0S z|Ma`Q0Xl^Kdv#$S?>tcP?INZFrT5v0KqW)J>OQ;f44x(b1CZ~D030o#`fPs@L>_P=xoNbu0;Pm z%>7|Jz(fD-A@&>b#_gN_do>hzk{sF?-#QEw8}N@j2>)&Yo});%evG02^q0Srn&}Rs zhm!vLJ?QjKU{U|Qo8t`p4MYFEl{{zR^|+3G4ep_?ydQ7wTY>K&^}a9q@A{BCsf=QHS~NBXS)o&vMO>@lqVy9W6_Odel?R~{c{wDYs*KfRC-;lq40dgRrV^uDy0 z$CJE!jK3#|X&QZ97b9VJlhd(w{r3oXe4d;>O6({3eXQE*fiL2H)L1>NL;s2O%U$%} zjYSj6mX7AbEeD^xxO;K7AVf_wl0sduP&r?}ox}rheRkYo>c2OGh5GLW;{3E~`h67Hwf*P(gp&UIXQb&qB;{`E!#|SOt@x6w z|DI-qJM`Z#@#9theV|?cx$@Re(0@M#>Tjd}oI_7U&m7k4OU2qIVOPldM8+;Pian7&P%M>?H& zjP;s>@k;d3x*B8LG5YIhUf^jN`JdO8FBaVg?Owijyeh`lgxv8f^YBT)ZSFo5D@Wmi zYB6SM4n2jO_MRP)(1vN=mgpF#BRP)N#P~x_|FCpgO3=S&`e-pVKSxDl)I)m6KU4eG zoE>v;r3cvo3`w}j0hUraRW!RgiCzHB&@fNA4too=MYWzd>Y%-` z=lZ4XPkddO!WAmQPuo$?SeHoay3mIFi=7;mcFx_7d%4k5P+olRxP>Ew&i{$^DjW%j zu`_ua@-KB_r3^<)#WrNBdVg^(n%bglO}plWD`Ys5ru=JDanw_(D#^bic>1(=A6&U# zsgE&d*Rxgr-POu55Jw|jQP#0IDdJd(^5X6mjubiOV2M4~-(3EO1Lt7!a`f08j9npS z0PXKsS;zHk97_qB*_p1$wK*e^sAO$ zX~@5$DV5}3sI-$gZt3bejj5mN8pb}++ut>+lz->Jx|f%0d?;C!<=-^|CXmx8^3pcq zzRJq~c%F>r&z+6*G1t!To)(T_D@~3@D*vNW+2YoH2>Ewh)IF{oYtdU?`FF>$3FN28 zx--OM{CODH@?|8YO(Jja9kJ^vj0GOo*O^A1gRu04{7-@l!AsXZaU4Smxe|~2fwcgG zb5$L2RQ{b+Tzv@nZvnDaa?#o~khZ;Rf()g%Fp<2Ke%1oGL!!IKzd2eEhv|NM@m~s3a%d*#b4(y-NAl%FsZ+#dVro8)i1; zxrgs0@Ni|7(En4xr;(>2|1(I@Q<#)ewU9EGf8m@+iLOyGAMOsNzw3%DbIHOrjU4@$ zNRO+5GNseBit;}fThDZ0Sp>dINabG386|2z?hh`?{|ZXeDm#1GpN}Rl<$n=5Ey8v*2D^*$Kb!KFfk7*LvBYtd*i*>me<^%8 z5xkZE)xaF`@46K3&#U~;gy#)F(E<-#CE69DXL0Y&Z@tOCGu-Rwce>{FR`QGegx#Oj zb#W$;kMci{(${cz5=RR>7*p5)M#{hTqsS?j|CR7|562qH-$Y6Mfx!9t-G@Cz`M-ekYV1l| zfzwrhwCGO8s^VD30qktku-z^Lw~+tcN&feM$u{1&u2xT>2Bl?+#3iy$4Pk$bU7K0t;RkT@_#e(dNj%Zo}&C8OY(mM zwxU%)aV0jg4cLXw>=AzVo1OsVZvny^vE`i8t^6OrLUbbQb}Rq;$#pT7V&(smB>%UA zQ}y8zu&oE`HzxVt5C4{88Lh*nw;Bu4)zt5$NKCH(-;(72jvlkWk~9}Umw`y&9ZCN0 zLH?iS*;}#wD*sPH=chWzzcX$|WAAz$cBMzLD!!HUJ%w`le;9eb5zE$rr zmr(Q6|Ib6MXL$3zUgiI(F7p2lXnzg$>0xkD|9>*c|6Abv9jpfNSKt%!e>YqY`G2M- z@?d?O3AT%n;}2us{e5cMKVXIY3vl^4)OnI|4d?6sDRW#NV@>*}nV0?vRC>4M!WofgS{J-{}+MpSIGZck=C1$+kZ;(|IK#!e=j`vwBBEOdSJG{>~Y(h zw0BlL1uZ{(ezmojTloA{Eh*l2!an%N4mH+MnE&sKLMBlYi4qBGNpEz~~(%)15>(g6J z`N4np`_%HFPixM9Th^6B@PBlX|9a1Aqi|j2>i93c+~sC`N~z^0b^_I3wmSa1@^6_F`S&%C9B5< zu1>2W`7XG$i2lvSGX8JknSID=ygcN;UQZX&Hw^xt4iEH*Ik#&5uTA_v4Xj;#azbGP z@^>QCaBaCtVLMWKMUnq&s51xg!Z?iN@22IwrBY(vXK329k(F&wK>nWt+;!<(9sgYq zOF!KG(0*eX|F3}m*H%%!-d>k5&VLT0^m<-RqetYrZYR_3ub%&}rzJn1_WWh|_Pm*^ zebDf2ed7Ov^q->sUx6Pyq@yKcZidPP6LE9mp=-T3j!#RK#275V=>9w1L7{@={`CF;Lxqg4t& zgIc%3{~zP8@dYSQ1dYjLx0(;fbf z&p9^MJ^qedI(A^I#PPZE`~!c-kDT)}n6`^^hf3w^@9RGFt}`X9dUTbicedd;Vwlcd zRyyN9mJ~Vuwk=14kF$sJ5*$~vWbt>L$eC5;`PY(S94(2Vyqi|Ue|URpGD@w)a{QeQ zljrUp4fbWG7x8!P^hWY2y>|t9cMvJZKVR+M+}+(c@Lvf2<4Nxo~%gtyITEd z;!o=!fq{SQI585dvNJ?%*W@{f|8gv9gJ=VcVE% z&-iZ!-<5n*g8zFGwB`7pR>XfRT-ZpglcB|_W%&pGYx%w}1h!qYQ##_mjT{db@!!Jx zy;u^34`5y!dSByTH>nF4qCFd0ezmtrE+?GqqHvwt=}eXgh2(r)$+FY;CH*^+hfn#l^6713Ts(q{yEoQ z{%d8EV%qy$gFs7-q4#5Q`9B^EulFIyVh2oCzuY-H*poJ~r z3FN5%QZ=&x^?q^2iu~W$&i}>Oc2*^NRHEN%N}reDl>Zxx{9n!Wa@v&(DkTTn<=A0d z|NZR5^_4u4|7UQX&rvA^|964KP+EZ768|p%m-7<;&##mmDwX(uIsD&EJ2Ciw4sFh! z{X+7Lm*b7mng8d~;;WwjHzfYAr)4;vbo&zjcTxZ4|0xvHyZ+Dl|62I}T1Nga1q1oN z56o`Pf$Zfx9FKvEvC>>wT&tqSfq1fpTl27kpJZoZ3XWV`f9s|Mu*Rb=$^^Cz=|DW$YF>gEa z{|M>6QRM$;nP>Fgis_e=!g+JYf#Tgz;yA}w6aU|hEZ$D~-uZVA^N*ea+fTIf|2@?I zuO$9IRt5hbqsD!Z`v0HU!{qiSPyU%+v&SQd}EhK!e~r!acT z^qI4}zAt<7RieI&a^KDQ8=U``<2_ve3CH`meu?A#T>lxz2e|$w=RfCojO)iaf0*;j z9OrOc4_p{s+f)pn;P^4u7Zu-mzO8sKF5+SQN#r4}-iy^z7lYTjN0ndu%w4KGZ$GLH&a>*~Hy@hm?Z+?X~&J}4)y#H51 zYL&x4&+?HLH^20oYI#;uW9K#FF0N{7=^prQ*zl2~#*7^|e!|2_lUt@vo6$O}2;65$ z{C4p9BF8(p{u1Xeb3DNDHI6|%8_MxAXhZYDJ9##eV-xA+#TK4H!$eP?pTeO5K|Xwp z16fV7X`ELRSJ{Q{%B*qPwsV-qwDLi|T27JA#Huo6i7?Ou{OQY!wKS@&sm(YB3~CxY zqpq6WZBP?G0?2_~R@=X!vG-Bjwm$`i&vX0*NnhZ+ zjN^|uka0~?Z6B)cx_58|254$)>+1ReQ(5G;j{)n&R+~%5>9XBTHLxj+gvXXH8pj0{rlI~*LKan@Q1+m zJg~~wH*=lyyvS4GE;MlDJieAV*A?R<2i*nhD=e%{h-ozGExbgz-{OF8h0hi7d8nIn z&QJ06eeu3)))byf??>q0zot_8&k_G_4scAejvS}DQM@mcWjI8otLs#v@jt^eWlgv| zl)?PE#EY7`n*Q~5ozp)_xld94Gn}90{Cdv&N&g0}@8J4kuK%6mD$4jTj(_F)3C>S( zewy=o&Ko#yjBnruW%=u6@rt^UvR>@AT(*ZvI~`zBjH1=`GJV!eIFc z9@Br0gZN$2A0Z9#^Y`uXuOYu<9Kuq>M|cuGlqEbVf8pCo9Gb?d{4JbMEgn3pHXwuQ z5i(9yHz^gWFrSSY3`Yi~vo`*dG19o*1aNHo3eUgB`Rg2hljm~J_dT^uS~+jxei6rM z95&54(lhScnzjw9Awz}^ZEhYmeCV*@Bls_5{KLiW!bIw` zy5m29<3Bm3aBn+R+4(%r&*#{}wfgeCTvr>wY1qioW5-YFJwe;gdH?t1J&XkZ!udDc zt3$^F$G>s?Ke@II-ok-?OL`HVk=n+zN7|-y_zk?5cQd&j!1Z7b^)2$2zC*O-(!Kf# zTyTXc;L;KL^drO(->-1o!?Uk(R)@TfIAhNt!_IxO|gF5w+|JGC9Z$FuKqC=bta&<>PNsjYTDXK7_Rah6t>bNsGC z5lz2}{raN=1~rWu*InL^^YA`kcpK+;a45gvl;GXQ^@q4tH-mf5zl1;UFek=$UcTPS z@doa1=X?ui@JcjN_Q9)d0p~>=uPoG%jIT`{pPf<$MZ8K6y1V)XW&e`H{?0&nYCHS| zj^{bRJ+;A=&wX5fi{nqZ{w8PXQ8{FM1$zxiXWUDaN6GUM&Nk$0HbEIcK=J#hD{h(ccj@!64&1#Ml zIChht-@OYsuHvB1rf>HjbABuDBS3sY{Kk{wZ+ji%`;q$I<2g^~n8Y!KJcO09%Fn6& zb{)?y=3NA!<-3>Pm7mq;&=!+lw_k1U;2nfd*Ih~HMqknCyP7w zmHjJe@dgg*B7HtV-k;>y!}Xb*lC!2=%b2#>K5G>y#b!kg9h?kvyZR;o8 zp&drqMArm|FwEkaG!?Gmy>w6X_uYIB;gBDeBi#v6wmnc<{B^nAB;IxY<=c80-|TbH zP3sG%AcZWf$?tBCbCAs~9J{GYE~34}Hh$3p^xF)rT^BAq9axlNDzqZW3JZbT4 zzNo^60W|WG5h=CkYKm`9X*-p^$ZGz!wXK6&Y|_@Yp=~>qux7NQ*`DcqH1+tl3GieJ ze{<6Bl(xBTlM^?I51q;z^9;_yJGR-N7twzBEOFG>=G{fAE0X+UEME#`?P9!_{=!8|mM&YqV&$sUYff0V{-lk?5=Dsr+SIXE}jTkX>Si`^(14oYokn2H%nwv+C95rgRt>6AxW20^Jp+koa8!=+SWWIBQnze?i z0aH*LYr86`Y(-QJBSFWGzkjQxA}%s9UHq_fXmvfwh-;oNk| z;loF+ZMp2&flIDE&{CLo@bG1auG@d0<%Hwc?mu|=+67mhi0@?k!-H2}&BJ2{52xqX zA33&Yzd|sC)dk!3**V2+dK6L094_aDgx4fpYaLJ`dj$M23 z@D=k~4t7Pm&{7P0_g=kZ`HF*cT8~hRjvsHi z;@FYvj<(!z@Y*X|mb7d-?Rc@=GEfqf>sn^zV9sut*-j1LT`*(+MQddx*Ja5P6A z+__yJM<(gbYa0vQb7*N9hw@yz&oBon<=1^?%ZizG|8{w=Z&&pCc4e<`SM~aKb@43{ z(LG>`7v(W}c)z&9`&`U>%0DM^Pw#WO_4GccTu<+F+V%84r(RF*bNco4zMX>I(`QKq z`YowIzafm$EByj@3iiRY3H(LG*JhSCF^6aUhBaW_rCm;>XrLEU+k!7lnovJ*KwZP2 zhI$$$0~_lb8=LAI1`eXp60rsim+A9mz!f|gCw^=#>yJVyh$UdZGrR$%$7hmht@`2ZN}41n5UND zfQ&X^gE6yCuYJbT+L7JAh}U@g&~KuJgz3@7YUELt0yAb!)-N8kzb~fsR7)E)4WpJl zt9WUDlh%A1XQ5A=`qbL0v~m0^_m0UpuJd}1C%Z+fViCPXNPW6yVzhGDpR+&vajw4{ zsoE$q+2HAeCVNLb&VT8T&?lpZMjvi>>ZM&$xGdRB^BBFJDLwVf+GfzVrF}_h{pnK) zOCEqJ^}BcTRy&0@irYBe%3;5pzIqxT{V`|k9DNSf7hCHHSL$DDmk`(MxW9`-+eTSv zvp&)fPBsVa5~(Lv7NO%M%PO_4OTD&D^li7&kJ}EdPVE?}?9SfXz*-J7`#P64`ZI9|V>|C3{{Ko!I5kKYtxMqPK;idSo2Z?(v7+=F_U14&Hqaqza z+(KbWH}OyB`Iy3fem4{lb^I)iKd&%@-|flZvZf$Bm#4RLnAv1}jCI8S7QYjd2Afwn zi|dI0;S~R0S;0HBr*SUl`tE{N{O_1;Qz$%?o}8Nbq+<{-)u89@uhNSif1LGFqN!K$ zL>gBYoPS{XRJs(x1t6YP&cS&S&a5=PUhJ0ZOp<;n&&uiZ7;>RJI2*H?V2Q4_>s%9M zC003cE~fK9DhF4CaUEM{M+&(s-MZqYb0Cz1${}VxIEO%=duM7o^Fyf@wn{;cb>zSN zh-cNL7jtKLn#vmEy-)IbSgCyHvx>KKSgc*nf^j~M`#E&xNq2dueNf zTSlGjE=~C}HG_Jhb6L(qs3y3+jQbWk^VC_adi}dMNiA1Hs>onOk^im}8vJ+mNAQ1i z73tkas}5{k57qtVTuroZ{Eylq?d6}8mzwghzKZg5$(R4mL<#T6Wv+6N zT51jH?v8Y>RV*jfBh~X?SvQsQu*_>X1-nvErs=ixk2C ziSU0uDTDv6STnJ5^7O?mkkWNG%R}}2Uzzy7hZQMKUg-!6|tTYQ}ZFz=0TwltZ z-9~u0Gx7h-GXAeARL_6cc09^3))nyoSdsrHJA_p+xNnyGPr6Iy1X4~!eq9;Z+3?lz zepcbbT#I8MQ0yfl1-Go4am=c zn->80iIlyMLH_Fazm2pV`M-@~s^$L$%)V}e_Intd&-s5L{J#^LRL}oMXsg{#nK}RO zq%OW+_k)Vz(NzC`fIGm?X(e948YlAqeboQH^52>NIsexr{?-nqPvXDp z-@1--wfui$;{O4-HH6l#{J*zwoSbgaO`&4=)5QN{tS0kjTzKUFO}I$Bu}}Pe8U8;` z{ku0gAw^eI{@+`%^aACr&lY7Z*`C7I>{mEKS^o!R!GBximBQGJTm~~U4|Bnlcvg7OoRUQ4uVnld|9k$*M z{NHD-oQK%y>I=aCcCH_*ggo!RP-w~m{x5WZe^vIERp}3l$a^pORkUYIzdkR27uTit zozs`{>^V;Pn^OLk^GZVAS2De=FYi6_{!~1PwtBpaYs-qXwtu75o~IPT$RqHJ-<%GS zcb-0nJ3srpx?rn6hcwCy45BaK9OhCl$Q3*Ni}=2Yo?GN#kKGATJ$IO3{9U4zsQ93qx?;${$IS0`{SPh~Aa zo{O>an8jCBoa}G7T7x^gn5%sVDe4N3u1Fzoq;u?E6BLb|)1`W}-h*esA$QaHknx{8wPG`Rvotm@?1^y1{7D>m8Vcl85hO4`Nh59P2`b1ju!(^UHQg8 zeOGFwh*Dtx-{*Y~N~QFRJf)+$F7!$0n~+T=&2JgZa7Egpu`7@PN7xU0kp~E8Y zpqu4-<+Hv9`6dKWCj%Ba?`kMQY0WT*jcZJJ7|WG5v{Xf0WzSl!%`NO`LL9x)(EnP+ ztT9Ty@-AIm?Lss%ix`PM7zb=a(|DdME<$6Sry_t07YYlE_0sU4d+LQ9tNjaue<9}&vm zYdH)#D9J*|hWt?4L;s6MgwX$CY0qO8UsZ9^Zl<-z^-5gR*d32!9TN9VcfDM#dfF&l zKiIv5EIHOw8-lef?3~(vLjN19o*YB}4=3F~?sEO_YANcm;gqL^uZerDXQBUl+efJ< zRAQH@k>p^G<@#T3m+ODmU(5CXXs+wh8X00y!&R>Tn}Nn$8lZwY*p;G3Cd@pW-rbdO zVdUKi?j5Zd3vNSs-k%=V2(J4Y#zMDP8`&L})c@{;WcjW;EUd0*Q=guw|A*6Cv21(H z4y%>)|9E1$3eE(29YrK6lO=W)HrfT4I0`s-l*Hvuxd%a-|h+LS%}qb z!WnH3TP-mz7W>A94ybO#L5TC<`bV*zdbAYerZiECT!G15;^eXW5?Q};{cpW@*R8PF zT4S4#bnE9(u#^hw8>J-br~9l~$HhZkp}o=i``hY&*Cfu6^IZRrA>VPydZGRw4LpW= zo`wD&MomylDbw1hM*^4iS;`Io!jVX~@YQgo?7Oay+QHr2)c@{K7W%)LvsVA%sq7kR zlPO+F&~dbUtY9d4mh`_n(v`w6E*+<2f;`YhupZ|j^#3SsOZtCg@nt_CbZ5A6Ks=E$ zhViGx)}a2EHhm4{`o9&*&V>e{|64du!=^Zm68iI->;Eb6YZkHGOHKVhg_6e*w_oDo zEPj=yNkB9P7^m^x6|}Xij3u4=e;UuHLw(B&{V#VLcwXI@UpbDhtL+|p?m6C3|F`n2 zT>sAm?iR{jj4VvzcRr)OgV1=P|HpCF%v*EG^}nl*kHog$kI@D9L2{j^3E1{$Lyr;M zk0AC^@S4l>7O-8Aq_7;i%GaU)=aPOIwqxl(oc!GlEMqO3<-j_SvP1tHOa1R^o~s#W z7!Mwy|0e^{YGN)1rZvdNN@Q#qX~zQnIG~%xn|j`;|7Y?Pw+Eh12D1V<%p#Se7q3kJ z+Yhq#*?Lrq#0~{&X@wQRwT3x7ul{joh|vF*<9>$fKKDQL3#^_U4kWI@8v1`Un7Hi@~yO+{X( z!d>iePpcOuoBiL3r!f-czv z7l*Ja?Q(co(*MhWSp6?wcO_X`fUUlXd)pUV;cf%Ze;fUOAv`Z{|6jme=>IiPeFvOY z|DOw&bN#=sumR~h1>QMgt^Pk32t)s`=b8JcZ7*C5W;2;YrT*Vftc&?KYCugnHQaVBf-W>RiU!*`fc}BfpNLosNu${=eACp-Acq z;K=p=B}nrQBzZpazY|#w{l5xn-j7@_N5W4+))#}R`hPoDClDv}|L*kV+Dz`vP(=NI z3esdx?Um{OZE#-={Q5Gq)&JXi(EsNXZ&QkU2M|QKjFV&D2HXFKfOb06K9ruMDWd7> z8tB|wxV>Bbe;sdbc?J6aN;rH4qlK3jE@A5Z0aij(|Lc`MMN z>i>QGJ;u@3P-_2I(*O4W|6NJ{-vZ|!KzhE4OsW4L0l(XroZMXa9PnQS+^=P_Y=6dJ zA7@vd4`_310|6?kQSE2wSqW&r2a$k$|Y zTE)B2|D~2zwRo84Hgx4AAXuN;54rw753iVI=>5|v{XEXQDXpacm%){>Ji93A|I>hW z9ddsvDVCylHd0@}+zXv^gKC-tr>Hi(=`hOdmudiV!unkJuay(kH zr2j8N0xmB+2rQxh?RP>Obxyc9lDVg$lYc7|7PmOWh}vQ zuwDP_?-2U`wSXM@|8gX$uOZj}zmI;Iirjt<|Cv4f{s7%$`~Odp{{IGRls-e99Y{T0 z%nGH8nY!^LdP)8N9q{q1`#944=j_e8oaHH=h34<;p#SfH)^EcvVmGzr7;j!feVv4l z#5<@L>i=VCpZ8H>U&A(P(2FD*o|*FAl>AH7vzOTiR{tT}|1YGc{(KCG?@fN>w3o76 z|Njeba{d16=CU|6lmmg#MqM4Z!1OL-tK-=O3}OgZlqB>{$D8Wae+spZ|hf zkIwdF>i;iNGyg2LD3%vyWY^%?lI#CJhr^-&2W6jT5>9j0oIS>GLbMM*YVgtNi+VP? zeJ}N~1`ch}^`*jnV;5|ux9s!oftFQ3q->)B_H9~$iWj`%gJD+1BU03<}2{3+*-q_m;yRy}p z^0OvWe*O-)UYDIpO}-B**5DI%F#9^Rn4L|@&d*Bnvnso*Ff8-?Rmdj8k5yS?Hj@3Y zXJ;+hBImXCT_%K9?kz3@Xr+{f|IecQg&Y>GE@H8kJ+>oES-;2*n5|roDv53ei=fAYf^9=fWr-XP{ zie0j*x$0a9p8t&_`aIl(P$!5zmfJ_*9woY*5M^Ney^H4&`ep zbj{m$N{+uHQ~4|bMBX9)T6LW@Bc&bb(7GBU+sePAlaAmzCgDCR%Dn9TfQTt!+^#(QHB312I(%?TCJ)Q2w=dIrb-&+gyrxX+=(}}4G@!X!Q$zmM7N!XK*CN|Be|OqZdW6htp>c#jvb>D&JzmxR|fMj=aB!9%0a~F8kB#>z2<`9BwDsw zh#Pp~euylzz*GHL^p$t4$Jw}!P-$@=1D(du4jV@f+J`6gAph=oQVu*el5#ni zc)9#*Y404ImFf7O(y4}1LWgiYlDNuH$iKV7tBte>=sBccRCpVhLJ4yWR==;#p%vb^ zbC$B%N?hCaKI@7Ur5g~qo<{{c_MHs|0j`V4^KDK*W8MH zZQ^b_cx{3n{kYyt>0_{0DF54e*1h~Mqt|-@x#aDixr|qxUX=f{p>u|HY!a5O6QS`w zpa}WjOq^W)PfPND4zc!9dgrj8zQKC_oFTUpI-kUGl$eKrGvxnFET$*G`!jgzlYUr= z)c*^KtNfn@eFxJsZKV9J@~`Ic%Wf}zEYOWf`bzoNi)|E7hax4)zg}yD_*Fv3!(rur z1o`Vnqn`5HtbBD0rW!#l&5#r2e@c?elKhXOq$yY}8Yp=daYFv56D#C@D)03q3HetR zJBC(9Pn7=+^q+PipUy(ugp7pz&w_G#S}f&$7JLu+UrO9bNYmUT|0g6)&rb3`yJP0u z?MBX5!M6r_o9^7bid+u!*B?8s^1qE-&gJh4;5-Br2jS9ssB<>G;U%O#4Vz9KlGlKg zUDb{JpM&K%|{vpV_Va-wE#z zC;2~*9=q~?T@izmfcnE&FW;Ty|2{0~+P^R6d@a;g{@;S6?Z$GE%m3Bgl+aoJ@55gI z$#(gFEqs43w0;bWn)3fyWaZV!&1T}{^8bgF_%_~5qR-w{{=W|eKf#}tiZ3Di&(ViJ zN+0?VHh@=SQGbyB{#DrZ-ow66-$80VLcZSv@;6fEN#OPl>~pt*!5?9{e7PI>SEJR# z;}ekd)kw-Jcsw2W2M~94lK;ijy^w!BmR2K6%Kv(3S_>teYpMLV@HaQfS7J^3kMh46 z`Cp8dQ2uu#6+@8F(EleQ8LN4AF6Fw@Zpi;uAXtJWY$Rpv;r%&D{?}4&_ws)UcB>7H zQ0xNJd$1edSGc1n|2IO3`Pf!oj}*?rPIVZ#j+5(~xw;MOqWb@C;JXuy8S8+|K~~n3HWq# zo^AX2XV|VD!17CbC)-n^X1Vsr;Xx{ZHiol|O-k9X)ASu>Bk+YGike_Xoe>GB@%g^hQ{9M~EKl_sWT--T( z@=$(mV-VwqK9c0;a>fgC`FSUtxC{9?j=k}NaC!+=uaRK&5lZ|-QGPDz zL4Gn8%i2(wpY1A4$rfPuyN?C9J`Po%E{w?*X3EdBESI167UgGfc3WY5_9^6N9`tO@ zLVm`=p^o9%cKY0prSfRu|AHPLz}mH)5d`UTe>;7?3w?e?{kDF+3mfu6erF%Z*fr@% zewX*w&C54Fk9S6kCn-UNpWK3@9l=n?k=v}&1D*$@{@RlXSn{V4r{`b$S3;xp$GnBt zYt#ECYy{qi^~zXY*~+da*dsL9J{Cg15JBCrtl2_0hIyK!Ws0f&$ZCQ;%%HrfwN_|7 zaaUm}7r`rS0ujW;_I%K@_^`*5?R&lD^*XnY5tfALXPA$N!F^`~Griqy{|DabWiLNk zDWs`uo=9=~C-zCSD22^Un%Jw+IwJ(m1<~GGv6N|FuyPnm`zz$%J)8T{ix@@^uO$EGqGx0?c`E;-c<)T1 zyw6gpgs{v?b*U1yQZ8#-)~03fUYSx3q>8cBd({N%V(eiq-=vKa8?$4zr-%G&DbpIM zgehIs%l{zgJOG?S{p<}hf}sQ%QjA@|4Edgm;Z90Q~nnLuWL~a zr@t8TKN|@2a9)apEudvPn77r*Pf7mg1L3gLg4bFzA<3lkU)2B8;dIFVX5d(zoRa{1p+Z?P5Hye7&2A<8_TzIy>#RsJud%nj9K4|GqHhkE@AnD=@--E?u2tCx5NYJ}G$^Ql5dK#WV)r7ZV-&6lTS(N{;b9a;+zk#3VZambQIc~!% ziWAnmQ~^54R}TvtEnQ}1ekYv9R@D&4GY|4-nC%s3HiASOilq4<>x?^^dCUX zoj|Mn+y`}(pPS*yQ&`c5Vdp$T$>&iAFNF(Buq&;^p7;Jf%Fj=L|0mSn(^+G9ZZvyYA6BP7zYk>Z#a1PK-k$2$K6Jrj)UQ8D^m%WQK97On zFUsii6UwS42hCVjqH*qI%{@BKXd{-$QH%a#-_$fVDunf0qF zt0w=ja~U;(Ntq=&yV(_BlXVU&sQL@6=ILfmYhMzVt$Hk05J<#^K*{B zxto{IEj_OD{$Sv54^sRB&mgaTzTDQMmBKz{*l5Uv5Pk~w{j}!@Q&>mzb26AB$6r4b zb1%o=8SAc-A^wgEi>sr}_RS2!>3Fkq1)YIvt4{pwsT=J3JEz|jN@9Fi9Buax^>vCH zT(ewzBHG8aHri9m@z+Xczd#$6Ha4vnL0^4gv`UGmy;Lm)!k@REoE_#Gv*JI7H?H>V zIByAmM+|M1xoWKVhyR5w27~SFIi#9QYFpitX-~}Ldy?a?XTu_%glBx!cm$!(vK`F(25R6IVcMZsKYtt)Kdox*Y#C=+!aAI0yVsLp$zh z$A33kZ9m^#@jnS(TtQB&p}@9w{)_+dcKpw${1d?c1m+MKO8C3N$tWNj%-6$}PHa;J z|4aBU1pj&9v!Db1%Yb|df2X12X2XByW7@Vei2qvfKO6i{2mh@J|1*hqUV49B5&vy` z*WU#GhZzIg)d~OGXd8+D@AGxOftJu7z5uT(%Kvj{?EQS3$IuEC|CjjwypOi!w&GY- z4Y>Y6!v7A&gEDmHJ84lp%2C399?-Zlj5C16e=XEm+K&Gso&^85LdC^t&guf%+`<1d zDDw?`xt0L`!@w^7uLA!YXh#@6&CZGZ^Rm6aLG& zZ-8>b|7mc$hmpVIDZTJd&xC(!b|SvYUt@%7U^bT-2y9SGc#-^nMgCtP|DVzBnE;nx zgRgX+{}-u!<@x_Q<$qe1=bwKk;`@@agbU?&35*_pLL=w7s2@z5htgI4r1LqxD(W-s zO{Vt<9j`8~6vBR3vX!e{Os$SoZ&nKS+WZ3LI$f==1<+B7{2OG9o`U_!(6s)lb@lYq zze7zNZ+c4WbIa1QqqmjX+tCbH0n@v;I{Yoq*!qBl9*@xteRV6_sN<^|T$BFseU+Zo zjWC!p_gf791t--^rB()!dI&+O_@2eLTK@Yr^DCicviIQVgY*_!zwBBDY>!Bb@Otb$ zeehrVTC{0Qt#@hgzp{kwuz$=L!qH7FNKcn4Ty%++R<9B_whK=>MvzW$ogN|2ITw{ zV>xesAgQ%(2meQ-l`E&0_O?!(54r^UE#iA9|7SwU)~fjLdJn;WEm^apC!bs3-1Pa}s) z!Bt4KhGfufBwx>ZxVJR%e>u5oo$oz#{{%dmw)CEuxBBD-|IenKb%55-P+FlE!v71Q=UElg zyE>HKniGiaSfza#`9G0AHBqHtTYo50pFy=D@WC0-Isd277pN2#Q;z&!p7_6jcGk(z zZ#-@3m9!}rS4vJxH|PHW@;Qj5<2?Ak9muaH*Q+X~KOIT4zcrSbV&~)675sk#RB?TR z%KX0`TjO?Y7Z2k1cNx}@C!qT~Xu}?Y|FjjI&QJVb*3N%h(3SarHto%miu_*>|1YF> zvo6(tXUXrWSpKbv|7S8g()xc3{J)>p@2jw~-dPp@ABO)oQ0_H&B$fF89QMJhvE2S; z#qv+5uW~OIp%0bu|59Q8%tc!|5mWLy-5EfNOg7epOU=*-F}1Dp7fuT{T$2}WCJtl|4Xc?mBJ?y z{PsHn{@=ho^~XamCbbg^Ds_g~=L5+)X%^Ve3D+sC@YKiuz5tFEcZa|I9eWD7wXZyPeMR)Wu=S}8(q2`^ zU>n7Dvh%gXzcU8{wmb)|dDX?*aeG;6Dk?+po(PdJ5lzI=;KkI;sK6 zDV>U6!M*<5zD<9pCVg=oInC zU$zVW%|PesfAZh{QCQ(hg}5S*E&0|$3xC7Aym!sXCA2Y|H6s2yN=ehz6h`yvfZ;-N zSOflH1uI1oU+p=UCj8Itg8vf<|GSF#zp)GcPk{gH88^xCzqXWhy81X}zq#;3tUPb! z+x|co{1+ARp9vS{!>6wJpFyiJ@IRd|N@x7;*|R&%oj}o${}t&DAj+XWZq{BK*$)|A#xi z#uHljf5!R>hZ#ZnA6?*&{J%y1A0YoDdm`_jyHMUozIbraZ90;hgW{};%tog0+vcs7y91c($lyv=}EsS z{uv{W9p9OVQ-Z2=l|$x}j=^tL*b)4m=3g$q5K*ovwHs&wiu{e|VK9y{!;<9LxIPOj zlQ|2c_c1EsTcM5oBcCXN7b&ghQqcMqo`>dTK5<03@qP508TpqW6c^j>era+lY4g(h z7(o~uqwomtzrf2let-3F^ocQYOQq0v4BD`?Mj1@!H_fk$X?&{HOT2vM(uW17v@M!KUpjNr zmo>hk;W=muA9AyVK-YbbAIcfn@L~Y2SG1rjRz?TTAG|#0V zK1z{!D0xu>V_Z3xT*tk&o@%>{vXohat@*I0hMq9Du(w)&g4*T!&!@rJ;ArHdbo4|& z+mQA~8m|PIke_C6`^r&2}dQ& zA$TAbuBB~_>P`RI#_L`G>A!Cs_AkaxVsBmbM7jQRK5a?=x$d>=w}xkbx&9kOiBeuH zb3K%EHmJz!_F(PI^`G>xrVb&U`ogsfa{U*zRXW5BWjUn>uJhMJ|G5fx%z0N@tijUI zXO2!7b0l}J3hrE#7}s_rJo-F6@mI@qNByV&cIZEM@(ukLa|E0_8~8L8 z?Lp4?@2LNx7bSe^E@uOXgMA$-H#kAbWj7(#I&UE5IQZu}yF2R`?nD2L;<@@y?|9#YuY(>Mt{Pj?f3A|PRJnSDyQx>!f8nvB?oxwT zE8_4szT`@D)X2~?p?l&xZCPaxw~s>7(wJ z^q(A3HhpJq#!#yAuW#_(9Q{J5ca&nsY;0rL3%0&%qX>QDw>`dokyq4N^@4fyOuu{- z!MqXAKHiq>-Z%u_A~w71Tg}*W`!g2(OZ7%@QK_ zzOa7ikJD5A7|$E^pI-3Rve19dw9r>R)`3wYxNnGl@y@K#dXVcsCCiZyJ%0uhXE+jS z{fb#3?pN#{9>S=+nuFAKW%1!iq&sv7uM{xEZ@Mi0IOjmg(JNo?mT3Q3L+esn^?>6? zYCmUEOyoD$f8!}BFb^BI_I;*hE2PsX zaR%3}K|T{aCj*yb434Q~SQ}ggWfo;kB5vqES0-_8g_Z|*(ilft%XL)3wFzeMH!)e5 z^;&UEXmXMW*VCVp_-pPx!KXHJ6(8G6Gbq#AK9cx`lKxwq?zOxaoL?Z7+!Z7ApML0$ z$1UMpV0>X3zx~Nqy(k4{`Iy+{`foCRQMvw`ncjEzGlYJyZM=n8By#;XKY3Km22XeX zZr~069)%WcBK@&m=&xhne-%%1{WqOh=A!Ki@bd~Tdv3e#or#~D>xOFe6m^P8X!P;N(%gDnu(oni%3 za21c-s_1M2M?KX#u6?5vTaQEkSs$9oL9e;^k~w3=mAUjQvOYRq?XE+%s7+;v-*j30 znF8lrcPQ6?qv3-xOcME z96y`F-55#|=KiV1xCV_@Fzt2D<}!4JZzXlBmDJ5hgnQu3SdW&+_{p1L>pd?Zf&rytz_a>(`HEJ_(iYIAT`7I%~xjug6jP=Q>W zpJC_<-zM^!L;Mw_RsYR{_G-F0Nc1`|E7yN(7`L5>)vgBk^&wmjg!2-ObN#oPoUGZ? z;kWHS?`*qt)PJVVQjMHVF6zJOJ;FB$|Ene7>W(|sJok8*!L>g0CH=RQSn9viuxN$; z+d-;zc2C1HiHqySwN!x+r_g}pq%^l{I>ebAz?-?y;X+1OHx~8ZKCGmxc#>hkwEee_SX;2Qj-qT=`BDF!g?)J;qv`5DeK5}< zRtxq(_1|&Q?}Hbi{|;k|?n(aqYCC%^^q=!)_0}B$Y!f&}0JC$I+?PgsvMWAWYhouI zWo&SYr|+!#PmWqA^gvbr*;-KlX^oHlxoU~27sU|Ljpw;vo@hTv!LIdVIPug8o*R)5 zTNHkcrf|6Gml{U>=X^Q!pSw8;qqWX?ZRPsUFR<8&f%?yVlgjm<*81tB58kT(T6y2Q z{@YG1boUh3p{l3W=lX9kCCy6EssGlI({lI``fmLs1o5YCmIxy|1|8|1sI%?7`IIjNN+#`RF5OXh9e)Zo4)W?f~ME!RGI%xxR*a6g= zd8hu{L1}VhFR?E|p45L=lHw#F8Of8aNSynd>@4cP%aO^g@O>w;Hj%N+v&rFXa(4x( zE0NSAc68{@(-oDb{Tos@pKL2*6Kg^rg6n=_20Ev!PQ{f zplvNJh~r%CfFkF?<+GBHsrv6yaH{3aNRC0Qlkct)H&DZ_As690)Fb__2fHQIvg?!n zyO^03`;z{9ka6`}pvGis=@C4K9|hj?@NnJ4(>ACZ`tK_8eT=kQS#f12^He^B^gYbT z#6@7Rk@En2gLebZcGBF=xJfIq2N3ry)a+ZJ{!KvZ*Z8I$;j{hs2B=eN|J@9h)(%%I zzlLAi&Y}NY(Zx_||J~1>D=LNl`(kml;a%{)d;Rw$&mU(5<3`T8{&ThYd${jD+zGv2 z0K31%i&y=33nMc>f_8V{%W*$5%+BQ9ui$^^zvrRL6Xd^-IHCVuO#1I-V!hBo|J|AN z-($=;dH`&{N=~`{djxv^68-lwym*3HDh1}SeXmFQ`8Az`-1LLu3*pXGAXuIBpZf`n zK$7ZtQqq5GQ>}I{1V^VDkZkqjDB{|(a4ov|?fP#@QU6VW;`;n7hnv%g*@RwpubH*b zUj66u(0uV*PDyudX@W|g^}lzIA@!g2Y93TOi@Y}gqx$b8AXopL0_|LzZUfM(|JJAW z-wNpDYG>-dZI#sKY8>lDhzlWIp zr5xX$^xuon`T?ZjW#&;m%e=49f8SjKh<%ju1=g(E!7({`N?pl% zLO*QRe-HOazi%P!HLQd5W$MIZjER1lRNqIBJkQ5a{rA29hrKs})3YiMzMp$C$xN0> zCi|XD*2%u_BqU^kumnih7YTuc5DXzCprVKah)_YqqM{TKK?E&}s8qpS>xQ+qE)}b_ zrLSA9ZM9nay|#Y+{{M45_dL(6&pqh(eedtro|*f(x3gT^x$bkWbDeWa4>B7s^xyMI z|2>b_&*$;!sn&lF0cS`3_Ye4J{Sf_k7y72eYDK$&`33NP0e>!MW~u+a1XcTU{nK9b z-|TD$y8@{HUPL}Z|9uPYp2Qr0McG*9vJJ^{{Wp-g0l&n%M*a62B6OoBDejX`V)A?jZkX;84`x+wrD* zC%WtQRDUmK-sXew`$}rmM)))wue%$8@R3x1-v(Tl;ypDA+#jNrxcAr*=ywoVzCG37 zH}cH(i{sx-r0Ti;F3z?hal_zJ1FP^?>TiE$V0^yxbD)a$%Pr{er-)ZydY(G)5Hy@z$Yu3!eJ^|zI~d8{ixF^l@UFpK*8(Nuryk%k>;^M%=uN*l8l;2Q-5 zJ;C>zcK-fL;_u%>?PuZdyE^dq?bP4z!{3_|e}9M+{t(~7r;``J_Y!|UmH7MX#NRuq zRiA^lFXF*9mOB3;SbmZ^{%?uD|HYh>UzPp^SpNgw)Z*{*>=fdU%GA%lDeLF$Aaixr z!pd+XnNf2WHQ9COPR``-hU{d#&#-M|Ie%NTjd;=xFP)v;$hiN$>^so)Ea)nKzX^XY zfr?AAe@*;dkbRhZeqI`uos=D>+*a0{lfV12p6Ca8%fXSLXko`y{=D~dT}l(brq9RA zdQVk(YsyF!w&Q->X%~4Z!B$S#`n@U^v`5B>oK{rr$BqRBwTk87ShnzL@9xKS|8!j} zt*xklIv;-ud$#tPqCt#fOjoO2%)kk%7R@1#7k&W3Q=ER5_XN5O;s#ql?-mNIQqG0#>CXgMnu9J|(v?kHc3u*<*R#;ZH$D+e7VaOQwAU_ROv ziUsGJI<~FdU7KIPQ5=6I-Zq?eaXBF-jw`;DAom=3>I?rJhZsefmMZ`4YrBhR(Ga6? zuFa#>(^Yj{g}ylcS_+(9JecpEe&CMy^o9Sf0OYQX)%@>mysk4|+I1a?&;}X&*J{z( z>#=jH%Ka45IS0e>Ic+LhOJlxqB~EWw&b4u#i|Z%5(z>=9?J_SVh=(grx!QNp;9TK( zP;W9VAICbHxpJT3qG1&6EN$TZ=nLfhcQmAESVSLx2(6po|7>!ZNIzy)(d4vLwFkN4 z`yA*#8*b_oTfF{P_&+__n=)FLi|FSS4O8fY$^UskvGFDFe-(YXCTu?? z{C}p8{QrLG2W9?$7w+AM%}f2S-K|(yRr>GEe_QI6o=fy!f^zxOh~cxmUz4Zt+&M+% zSspuLRB}m)`tV~)+hgYEU*5a0r&K8|zc%BD=W-yoj>z^o?D(e&XKF{YX^Hg zdCyBIy^j)Xk%v!UloRm+len&iKGNC)GIhWe&_=VD zOkDIZvi#_O`zE~SrLoV%Sv-s@lwL_Yy=;_$q9N8dkP_k?TEg5dTW;C&^*Z{@S^z9b z{IvxLr_clsLw2>01Wdvf{I=KYonHMxcajtgdiI*iaWE|aLS*Sme!w9|d@5{0E|01(EH3emtx~}(ID859obneF!AqoAWHnK85xm|Jo9^sAC8N|D}9QAhPT5Kld)Lblal!Xw05 zRK!V-#`sc&MM3Tw#8s=R9-)D&R)@F>&#U6~!`1X1nK4g&IqeJQ`cH`U2nbzcJpH?b zOAdv(a0Gs#tSYn~z%5ny**d?_d8}s`8^BsovK5m4*J( zFD|T4`fH1)^G4k}P0u>_K~yJrCGAFX)<>^s(6?F{clEpQpVb>%-%q`0rRnGdhjJ%% zLjT$S7{xm!ZX{O~{U?0+3U$KbK8$+j3biYr$DV=KxuQXz$x)PijnUnhojR zeV!)rCuZ7uiU$1-bN%PKdG30qwa$6OxFJ6l%t-#B6o<;ip~ znc6}B3CHM^Cf9#bdpev@|Bd2p1J)%aL}sB`@{2k2~Hg#Me0tayxvXETsTcXO+!yiweR{?l7ePFM7w zTo^-+v9G18&Fee42)M_Ri~4T{Df*)ST1c^oa`jx2L#|c11WVp9C@}-*W>J=_&byE2 zQtD0UKmGYyh^zjahJS*qe>D+*A%AnYU&TB9Nptc|hD3{pY*_C88C} zoV!=5|Bgv8kLP|K6dOVAqkvB7cOBQolruG(A>9XE>O>>Y**1xQs;o5 zYgPE9fos>{T}Ep4pI+=fn@`M*$e&)*Yx*!gF%N6_G)5G1{kIj&)qk#av>ux2Cq4j< zkHf=e8Na#ybD!S+q#6LP^gDB1RpTy)TE_sv@nE6;TLYBy@xjr{F7)5=l<@o4e`|nZ z8et%<8>|E(kT>Z0t$b7&Q1K+ZUPAxv0;{57J2|zI^ZC?;Q^;u$5FbxY+n~x0U_F!Zl?J$W5>HWE&a1*+vfg_?v@I*CFybn;dq+osImuR>?MKd+R3Hfbw+EQdWG+Gze5&Zb1Ne%m|K#R+u-H!BKObDwe^({_cMaoL>c1;^ zyNx)9iUCKgT>o7NsLaD(0{Kk zUCg^l_{g2ic+@=P={(+z$H(|aB)A0$RsWrf7g`%$Wpk`QblU#A6AXU; z`tLUM-_<}c0)Nl9mi6Ba(DGc$x*y8C3~gik?|%5Ogj#eq<5`!Z{~qA}5FX&6|8^1k zjdA&Za{<|Ok{Ylb)kC1z= z|MoLF*irvI1%2L$JT~H;`!p+j-^1VQkxAQs?b*P};XO-b)gdwD#;yGQwZf|#b! z*L5ipb_Y2fY1e-bgU4sc=|jYRg5O7rRu6m;@21A;VIBHUtY7G&|6Y~!pPq}&$j>Mw zeif4U&7}XnjQ8nN=)Y&m`tKb{|J?_L-$ea*1G4!U@U7^-d;6&WJ^)2#BYUmj{?BFo z_aR{ZC|cr!)Y3<(hby7S`=Hu)7!5uXKi1HHcR}eo{(BZ#{5lvng28*4@u2>@H?{x%NB>3p?|<}P30eL>TmLzZ zkpI~Zh(D`Wmg<P7^mf;+fYwyC?C}pLW8t$MJ_G#o;~bK2)m=Bj?8&Dsu7gxxjiT4^-eHX zVHF>Fq4iyfQeNDdI%uVpSlhAVZSq5T5FgWbA3{DI#SHljUu{RI98t^V)7={*&&b_X z7o?3ND(28L{PHoz%Y@t>w4*CAo)Dwi%DXWf(Th=w7!}oeq9tB?W6$+V+n@NlGKDKt zgrByfp0O^G)^(u``4>AmD(#%R9rtphr=Yy}-f;^@2A%&C>s2_G6=P@eHsoLG#7Y^C zmWpl2RB?ZCEt=Y*Y)!l7h2s&9q$&T}R2=nGsw(pD2%bLe-3M3hSL$QT+4XFde|NQV z48+k$SCn-uPKr2IqP)1fg(F3dIap%P^*5LQk-#~Wyc|7t2V+-=8A$s(R@QMn8^=KevA(c9lOs+51{!Mc~1YkVkKwdLP60w$5u81m9K;=ant|3sdQ<CpgL73Kaa8`DRa`uT z{I>vEE4gUx8cf^XH9>~cTbNAV%D)mj0V+Cr+PnO_(t&$-Oee)mdem}oev*Gz1({9% zdoaBu=N44Uzayosq;YJliS#`Mv21}F?p~$*Yh`Gp-{Lw=t_?Gn^4!CB3V67(O6dRT z;4_G)A^)>T(Nma`QnipWmw(}$Oo^^hu@LSKr@!lpEc402HH{qom`snWkus&zjGFR4 zA6w5%U|9mb%Sh#3%NZqVKOO)s%Ks`#(<(cgzGTS%{3I81DYG~I?>Z*y$axGoEB~{& zn?*Tm>7S1!FXev;IW56|Fysz^6$D7 z?$4|I&xYrXK+ysZTqW8SqUUh$&TqZRzcbwH>36#3_3`8v`w6>0tLx%SA|K^{0j00w z?l_JXcrdQC35=9~?a9aY1b#QqbNOF~MK0ujId((ke{EU*msiRE#w7ne&&Ozn$|3)! z!q1uX{#OCjIXrXBLiu-vm9r@+xUN=Dp$@1oP4e&Tj`Oi_PuU{_A^*FOv{RD&zk)Q55*$u6-kjwBT*_VyZ`>2bRYtb*b~z=? zgHo5kou1|YWVkmNc#e|t2Iz7E99xThD&+rqNh6& z-wXeiV;QZ-rneRg(UsKirI`fG&fPz&9lMzZ3a?if3=Z_N)9q z0iB=hApg#|8H>H^b=Z|2!K(Nc()Sdq<^KWX`Bhl9E@vd?wb&h=CYL|JCiN`x|74Q? zTa)ftfn9C|&)-YlwdDUfa%zQV7jRySHLRoje;J$baOOcj-7f#`mmOi=!ra7A7_K@66E;( z*mwVsn)c6FA^!?oegbu#U|hrb`hUS3mq%HX{we0Af07cm@^(41)E{E5{a^Pg|6ggB z|F5ujqw@b%;QJZ!{}!b6dgS)!N&dgyF8>e0gMUx*|9wjN*Z-0K|D)w!>w|yM->jUy zDiVwr79(@;FSqh|RXfjGla0;I!XF-@bNwEiB?6aA*~?_mW$JYNrps?C62n{<6nyZ_?gbaSB>~`21>X zF}Lvft6hHB2`$m`^mG*>ZEZdGX{&S9iX+taV}!zT!}ev*w{{5YmlhiR(S!c6-nKr) zwS#sI?G5@*hW*N3p?yT3)DB9yEd)!Gcjgpl?K`!DmIG}8!GHb9^^cVQ`VZF*!GC?b zh1<5RRuQcn_T!2MVU_>x0xkcwheY4CRt{R0!k;*H2GZYC{_E3Qr2OE&`+aJ8(5E%$ zzb)(9A^1PG%zwRSwNbdPaxwl(FL$|_m{MxFiJd_8mo3JBSKbc(yOXFsvi2n=^0Wy5 z8i*PE*MC<2JBwfbPwA!CRH2LfchgvU#8w|&Zh6VRaHqJSHXY#%afph{MWuP zyK}T|?q?+a+jG^6a1iN+K|%R%o3M5mL@!=Xz6G?!^}lZBF6#dr+PAes3zTZ0O*S2R z&m@ml;O;B`7n62%;{Q}~TAq42i;^iU#^?JIHzG3kHba4sbKBulaorDkiTQ0hHJ~!3MV3^ z`^)@aN1Zu<7seqZeSV*GbKEd6lzLi^2C{NE4% zuPIQz-d=kc=Rb#0dOfdZ&?9nPw-adh7w7-YwB#4kp1%~|o;PuIF*JN@pZI?-{imq^ z`|%^`3;%B{^Zz-#q4rY$<^N^y|D*IRYKPmX{SUYE{|lsfJ$;>*7v}%7tg^PB{+RXO zbpsC2EBZcOL7!po#%F3556pj1=KphefIOb~e?8}~QU6^VtycIk)VdM={{VlD&qDb- zSb0qSzn|XW|M0&S_3}PPC0@p5^e6IXap&{ssdRkr+q|b@d%0_R)A=RO58IfLn{V>m zY`>YmeFneDdGLvUwu>FdHJ2zOVpw{-wf!7@4oC9xU`yH&Slji{w$J-Zc?{3ys^7SW zE#XRf+vL%oig~v&qE>lttK09b?J(hUMq)Mm<{51)$3SyhRnptqat@L$SXXe0F}Vr^ zj@H@2bqrBEw&S3-PxBniQ~b>(W{^3an75Tt)QsnsCwj2vS z&K}B3a9quj#ouuvXI53`-;Wd%Xh{s`-HbB+BimDxQEDYt{fUClQo_`fSb zTaEvzW&Dqa3!8~`0<<`#D*wR$7{2d|f$cQfDIM|OPL7Al_;2I=ZY+t_HE=whpM&|X zoPhM@_#f_o|4wXWM<_GL|1cKjoI1+?Zs>9aG`bM{4`GMC3cG3Lec*o)IbO=4{2#2! zy@X}=626I#f!WK+OZ@NTi&shiB>3;4{PzNdD@LEd_2X6V-;C9JBwyGMfd3<eb zeFy$*$6xgj9?AM$KZEyYXZ+s+{x^5P|BtXeSMxvc|FbgwpTM5@)vEIU|HeP3l;^n4 zpYWhi$Wv-%iabJ#7Rx8TD%zyNE|vfKttk@1K4Z)%J?v^;cm9rbpPRk=fLbl>mHOB3 zRDAKePgQvub`8hI#UQ+}OzoWzI~!tatcsqo6MbS*paE$tY)>z(jwRSI~8 zM*oKR78kKm`Q?qTve^3t^DI<;nQB{@^s)&XhhGol$M-dS)oP~?`dgmgK}*&)pwE-I z)K0H&l=cOo_1mP4FsR_STHf{^{BBo#d+b@e@`C_W! zcmDWjzEOI=*jIEWxfU`lb^g{0wpn7nv@L+(zjh{P#Pz)p9lu>e=O9H|5Bn>`r!Wra?$%n{yP`U z7L;B+wS#K~IM=s@U)Rc1a@_~RJ)Mg2e|DMwmO0@i@_!x}&!gnl#Q$08su=%man0oW zsmv{al2f7Ld~lfy_Wj7SR&ei~iL|NY|1$VLneTY;e?}qx>y5G?@qZ@g;C~A(K0Pv~ z!q-~-8-xGCDr{=~XuV7X0{2A^{?7-J+Wc>Y;*RidfO{LDg)QMp z{%>yQ|59u_YZ5(b(QhrKFGz68|IKCoujP6r?aD>9k^}8Z>@cqXes<#eYM#jdGdM5g zs1<_$r-8+AT7cUV|1SWS^Ai8huaz7sRrr4y{NG7CG5CKDZO)$kLh_7P;*HUn|L4-; zE6)E{CjM`vWjK*^7bpIoM*WxnCsR!C`akFYYvKQE8Tr2i4CMdCV0L{DWH0BDcnn;G zmFDs?|IY-UOOS_cr8f9~S}!T%)gQory*x_Tq)LphpGzGmF}mJ2{yz!-p9Is_Av5y- zJoaT7j-BoR`SczpvL@zC#_gBjF%bNJ4Ld))f-!jO|8u=3=50s*Uq!mFl==TD<{3R$ zGyO_ZIB)JKP}~P4j&gh{@&7(#@fOne&c8dEfAl2Sex#lM@1p*HG4cP=0{nlJ8uwo6 z|8KE}$^XB{E_WaN|2r`IPk2}>{I}u%hq6-Jtz};P8C1zdgAItf64J4uD{Otn;egF{TS!>bAEy29FA827e?1M6~jk3 ze!%t1%I`eiRK6D%@i6`r@(@?=#c4u0{!Y#qfKy(t<(hcr#bzcEmonNe<(YYU_VC$_ z@hp}78sdMSXXSF*&f?nR+&EIXHJ@DO#k)y|q8$V&{%rR>6=Z!axu3r!Ozo(x_iuzl>wxkfx!-nups&?-1HPLRoL7 z%ujH9n(NPUej|rC{2^yyyPM}v1KS5Vz}I)_`C6_w@($W08c3(N^G+F;Zqn>koUQL) z=XfR8#A(~bbst0GHmHdo0p!3g>o=frQ17F-ZGQm_pW*l`l752o3XVVJK*lvmwY{&{ zb?@K`4AAuJS6|;Bn5rVTeHfTO&hZD}eHRB(nrH~^65XJUwCeDDdsPNrBGv>%IqT9P zZ2KzjzeOG&TUExJtecgbD z`p)T}pxh@Z{{x(#=6o~fy`+CV*KgqZBCdbKaRp`k7ss!;ew_1@oS)*nk@F_bn>kCH z+c;WD`zFrI%jtc#kZa%b&iwQD={x;to}2#{%I}TqL3+zGjxbn$g2(iq<{*BT^jDFF z`1$+x_*awP5e{J~<0Cu?AIcJ*l)vyDPaK-Ysr+r6PbnWfD;khN^#~cKs+*JwRhZ94 z9fl)=(%CQmlQGh`-2`xK`y$W3%=vi^zsd8t=lh=8Cas*eaKD7(R1TZw9O)VNZOz<| z@#__U|5f=BogjFwM%>1g8FFpl0r;s<=GaDqTb*c8E zwfOH>&wmdYUq$(cd3S{KQO*ZA=5eh&ALKl!e19U>9^7|$R^WYi@lzS){MxUp?%SXB zP+s->_Um5YYmd_nyuR!3egO9z316hTt$g^b$6$R)A0fYS_5B+L^dHdJFrabZz=nZ? z2JsahGI(%P(~u!Uhc*pu9yV;)@ZrtPBSsD%F>)0DrHp^L*j<=ReO7n;Cvg0hV;c9i zQX^*tcWyl|y2wf#Nk|IY$A8_K8lbN%E-SQ_}Yw&d@aJQLZtsxTIas^Cr&f0H4Eyw*8!ohx*j8Hom&147+v6 zZ*0Zbmm|zGLfbH8;-9(rIoH47pq*bD%d>GDe(P@M;QN)@#eTO(@m}~YP57cX{?b4&~u#4%&gzDYez^;Vi98C(hF9GLGL@D5L3DvHt*cz>uaf z6S~X$F&^Fx3~%N9b`IqioD#g-xqctl>Sl1y`IqqL9p=RN&db*uIbP5GEu3%Q3|@&w z%076tE#ka{tKi~}z<&u`SEp5{se`0A^`*~Jd`b*E) z@QpiS_>30xuq0U>!1TLB6GRcUaa@;L#CeQXQaPAk=&vpFFHc%Nn=h)caUhMnWJF3W zy1Me)liN{?!$%AqHhTQH z@#97hA2VXe$PwemELgaB$+G1uR<2sTX6?H58#W%dxm=>mB{{0#TH#ap5 zY_1)@hdn^nvI7VA9bJ6M zq0^6Cb?M?mM^4##`j*{sw|nymOLw0?Ywzw|vySdQ?(B1yExMF-IJfLMbm*#US}r}Z zZ_hRRT1qnx9J=)2wR`uqtUr3q-UElOS#Aj3O zL|?P}nt3e&!{%!*ThQgnu6;)rw6x@p4<0lkld4$$r^W!CPa*IsgT_rAji*398el(L{2djM^j-*Vt(bD>OidBg#+`SZIzj!e>< z*A6Om&!Od29LjU;KEoWSlwbFmtte;K{o9qjzFpPp+tt0kUDNB^wdJ?)se8bdF3Dr` z@P28H_qmw&lz&d-p5Etl>*;+?xt`wVwCm}8PQ9Mq=k)98eLDrar_Zt)^jlVge#>gm zZ~d~IfIXC7gMQ0u&~I4{`Yo$LzhyP(x2y*JmbcR{DXkuUY>Bl^=Xf8-FNlO4taL2L zc^sGf1@08=gJ~1^tB9}7EN^0t%=(XL#JWqnoJi3?FQ>KzUz#$hVer8E#vzRjG)e{! zY8W)AsiAT35E?BJYsg?e#$?7Y9D!e2BD|!jAMg8PNA4zQ*(6@$paG)>QfR5M!Cx99 zb#-IL4(i{3XhRcU{N{l}hBl|MvPLp*(gApHTeCD6^GwNc+M<7p?%Q%i7QMjNov zm|3USKI3V>(cQm@*LeHTZ=!{S>Cwh&$N#b2G;i-J(^qh~6TkK3y|0S~={`*`Ixe>n}vAHi}F( zc>18p-Vu-UU-~2T$>^cchufKYX?seSCYxyfc%kArGgkCc*@UlyReSA;@yqd2=8dNoDkdfb*ccAx%1`8|&_~dH1h*@9u zl8h7a`=@K$qxuay*JdccvHw%Vk2wIYS)fOFC4THd;$92J*Kk^2nwsLMNJkO3RGQXJ z{L^_puC$lmO(jGfKTG2;D9z&c#AI+;R}!Af(%X5=Y%)H^I^utW-^odXEhwGEb;N&v zivMd?@DA;1oXfbrqhuBT2WH!pO82KHr({0q7{p68=(+o=^rFWfXT4Nt>Qy|E#>Im3 z4=kTbmqNGz#IxEtI8VZvmB!bL-Ey5t(m&-{JAEEQE>s6+V-^XP=xV#pHBnY#l@sS; zIuE3Fa5Wg$v2}K&kh{{YD{eXmLOG}%V&;Q$2=uvkrlvDLlzL&S735e){>zVeRwTWc zJHyjd))?=7lGnppTGvu zs-LMD)DxY{avnmF;QBJ|Tjw%6d&By0`6%?3DuI@5dJ4h|HhIDsF zI@cEuAMx6aZ99h-OcJyod2s6|97z>#d>D2oKe~WKh8?CaE__Yu!rkQn6oq^D>@7j)s8OGWV|BsaUe}Y3;HG}(Rx&NfQWKJUGWaQVCft?LsjQ^97*5Neg z>q^t%TF(D*5^=r?Cn5)2Hd;=xR0gm ziy7oE#{cc4?a2S_6jPM{7cl#}4chNwa6ae%h4BAYXi}X257Sn=gEDje-%4G4NcV%9 z;gMATzmGe>PiQ6XXN?p2|8DAkU-|FM|D6Bp68~FkmM)!kluj%2e^=ta>)*PLb5Z`k zG4X#N+!{t}SN`8sI!aDA=%!FJ{6*sb5mu9V6D~aR|2kYG-q1((zz!{d3jRp#Nr8l(qg9rTub1X!EzG*9(EkUeCD~DSf+|M;@fZ>AXNRq~0sr?{E9ZW8 zy80~ezm4lhYa!43&z739fd8`{;9rydbs_y>5qa+=zl!#3<=5xc@8Y`hzH|CYo;}B@ zepAWca$ZWv`%0#__2s=s-k*vm(N>RlacxA z7Ynxfb4a7Sz##ep&S9?ff?ToFzliUf=($A>_So%lvhnPrL<--CXF%ke{K}S4SS6wip^Phgt-@Kdee;1IFA6E}kxyE=huc`9oW@?4CS$1J}p zaI(MQY7Oq}Vy^Zfq^K)Ax*~He8ZEhJ>fo!Gn4@RQ6@IU6O>1HDt*b@Y=lAK51c7~Bp%Q2D zbrmJoX>tXGSk=k1>BY%ES8TG!@9GE2l(dW0AF5$1axIlz(^UHQ=j`gHmhGBGuDa?f zpT6^nvFcL`&;GR-*?YI0C}#G=trf0IDju%e=qjDsA(VG_7LZDfJk>g8eOGFwh*Dtx z-{*Y~N~QFRJf)+$F7!$0n~+T=&2JgZa7Egpu`7@PN7xU0kp~E8Ypqu4-<+Hv9 z`6dKWCj%Ba?`kMQY0WT*jcZJJ7|WG5v{Xf0WzSl!%`NO`LL9x)(EnP+tT9Ty@-AIm z?Lss%ix`PM7zb=a(|DdME<$6Sry_t07YYlE_0sU4d+LQ7Wijaue<9}%kGYdH)#sK`Rd zhWt?4L;s6MgwX$CY0qPpUlllMH`ChVdL^!D?2gB=4vG7wyI!tVJ#7@OAM9R2mK^J; z4a3?Mc24a-q5qB5K#rmRN0M$Zce(y|wG{Q(NXpZ~*TlWnv(W#&?W5EaDzVGdXmT*e zYW=Ua%k{tOujTrGEZ6mEjSR7<<0{wx%|K%=jZi@y>`Kw26K0-G@9s*tF!F8`_l{PK z2e;uoA3%?56xV$XVJ1avV7Ma7FJiZX-H4h|0C(GShhW8ht(?jee@PT%DSumA4S}8-06tg*I8MAold|6A|fbt^2k*4QQ_-TFBk zETw|_Mk$H<={{@Laq&=BXm7Os{;vApHHkCiJlFr@$ag}rUa0@a0*|4AXQBT`P!rTr z%Ct7>(ZFSWma+qZa5T~_e05wY`>yMwc5pX0^}jomh5m2mtkr*HD!Y!_WQvy(bR4Z7 zD;Q3m75(pybd@lIOUEghAP=+=tjBo>{Xd4=ivAy6e%T)g-5G8I5KpFz5&UVfHK_lk zO>3J{G0 z#u>bK1#K-W<4LFfpTYB)P~Y-G|I6J*o);VQtH#lFwcTUSJ;yuh|5lz=>;Kun-9oub zk%cMzE@aeq2pTW+{{*g@d224Y{&&^!(b)F;GrHhDNUrlV3ETc$=rM}>QN&&jUh{e0 z0=A2i6jno5`#SXheA2JLb}aozlE1rwWvpeh5?BXQcIba&ssCNgb1mZx6Tu_&|5PAa zOU$Lfv<~@Ljf|}z?RcP{0CY2W)4&_`|7@P(_Q2DrU{(T$Iizy*;-%?-`$5(|TaRjy z*r7lzZHr2+G?e#wKT3V5zEzj1QEd&lmt(9>8~WeAmMvJlsUJW=q8HuOlVO z{4ipgw>rXDeGQ@i)j#eG5&GY9+|N+m=l+L&fz`7kfy6afL;sHj6W5+on+)K+Z$kgO z*Fs1AZ(UVS38$@$0o=R)f|@~1rFJsBRQ>O0liz>$cO1l(`hO~S(~;Nda99051qhXP zS9fzS$JxXgN!@hKGA3{E)@OrKZJj`B_or0q~E8}-3sY0#LNJp-|h0y;S(l_%A zWZ)duEL#ud7MD)pto}a@_p1T?9t)pr|A+o}_5INQJCN$F#8v+L^Ktp1m;rzKfhgsr}bd)pVs!`()n|1SFfLU>-?{=a~`(Esb8`bltF{eLc8&h`Jr zrAi_dOE<|#7qD}WQax{*0 z&#d2l3*#AaamB$F#;}%A+J2}o7bigV|IwuXPw1fkPlJw!pxCug?i^s)3U?Y91sT8- z_5bOmS9GKQck^Zo`u{Yf=MqN8_TzqckW|OPx4r!RF8W`cBHs2O+!Lja-)R4<|6Q@$ zwV~agR!f(?%w{kS{qI{fySuL13vpjpJt!*r-|wBhA!AM9jibtb?V>%QmQ!a~e&p3R z>g$#`j=!;-bN%ls*eyuRTn_br3#HFZx=svc5jXU|yJJqH-nlQz6k;^NC-a6 zD?Cb~{Xd^4>VJD}uCX|U8r)2L+enV}hW;PNo4$r<|L6MuSY$~3znIcaAlH+SkCT9B z85(H{(zF%mxAJ@xwft1#jAZn1F%q;TwKbY~wk+xY&A@MsUJcxvpn!X*jzlAjN2_fi zNB177L)%Q_joNKAtqJw8?ZLi`!E5B-0UlS7fzRlt$!|2;_a zNl5ZSMJR%e9rsC_U!NmE4A)z#3swRB6j z`u|$q-0%|g|K)IaKcj`0mG&_8ejh6#s{i*gp7|cmuYoV8F{Y^ge>;4-9GI_Tb;UNu zW<&p<3kP!je-+ZB{@+cG4>2Bm7@5i2|0~f?SCeiPn)FflJrnwzL3yjtq3ZvO`FoV3 zuc6ZZuciO*1peES{=WgvzZ2>C5;CR!e;E93VsdhG>C?b}1#rKX$+80&gMEx~{V$ZR zOgp#S36ItPpD*kG&m!#?vb)H$N&kNw++Ldgf0p|CFm>!F_ztN5zlit1kCB7x%KHCP z)U4M*&70F#;*0R=5U~CeqwHTp{y)xS{nz1{dPCCx?*k|G|5J8X;|uCssD|ou3klLlQ#o7uSLG5lG7UAh5oO! zw2ITB7Q%JEK zy|bD6a$?dd>i>0cZUprr*Z;fFv*#mwyOaJusa^kXNAvYH3V^9M z2-@e}l-Sp>of`C25{=AEc~?sQdFt5<>;tR+knR6Zq^JIT7>Msme&n>5vRwcFk~g{j z|0Ayd6Kt#X|05xTybk zXBGYbGpO|Svi|=s{A)u0&&>wnakDA=I<@mpS=vGU|0{N^eFmBNd-Ufok?XP9u1x*^ zIcnx#rWVD@(yZ)iJX>=8|4ld?`hQ6FaVFt3XU*B8{3b;E@S_GFo4%-LquX~=AM4<7 zclt-4rh}<9a5(9oZAf!R{c{a1>XpdbtI$6uB>i(*ulnaYFqn!iebw(t|GbO(a~XPm zHnKT_?~3~8>K^pZTk(6l4mp1rGW~k=iTdYLN&noP^v_eJ_a*&vfbaUf>{WJzZ;blq zRn+{7{yD&X=$`}B{>NT|{&|`OrXEM~v_D(`PruGr>|=bH`emVie!wE3wm)05LrB1i zY;0*orv90eJy7}(f6@N@U$mIiKgVXd{u!2q{`nw!^3$d3sr~)3^;zhjpYpx973u#@ zYJX179z^#3f-)~-{hL0BPKvq-tu_`pZDalL7m%O7N%He(4b^_h z@+3b)ex63IKgOHSBR{@<0?OXccliD6C-!Y1QGOmr1I(ob^)=*2@2rUR0DHOoN!9o3 zIyAw%lKeajERk1V;m^Nc-$!eN{A|g7RI+wH%S5`a^7BJr{4%|UbXZ}T_#dvoa; zwD=j*QH=arJ4ECdBU9nS5G6)#k&~VRrtQb!6XSIb_31&pF`ls;jT*p}<6>dq&lm#3<48J@C>HOgIA^ws>J(vlE(<>^1J+;`)BBp;@)K1 ze8bA4tYP2##P|m?MR2#)fm}U{vDlk1lKVM_fb*)9rf%Q9M`SLzt%NVh5TD; zF8|u{9U&b7G{%WCwAhSKZ?tuFC;!IRLgyHWsp@D)^e2V#uf5B$KdI!-dp@x)xm#b1 zBb&Q)icycQ{smIloMOaZ?1VU%{}@Nl%sZp{GITU`}d|@Q<=CD)Hep zWm-qyt^1(?&DEM3@~^fqMaaJv*{=D!(~i<3WL^u6BjoZ`*;3yqhvMlNmy5`H=QxdU znAUMKpL8exj%J&S+;^WJXQNKwZvf97y>BM19JcInDb{FmRsQvP8PDNPMk7)g`oMG! zAr&G2lW3PI|C7lfc^t5ykkAi#&v{Bi~Bg}G>&%I1ai<~XmTq)MYcD0(3&mqUq{%fFWP z&cRukj{hm0YB(iy7}ukTs|t26{?!V~zuX=IH5|+H&RKW;h&hY+lZdJOJEGb-ID)OmL?eCvaUAxjSMfK1 z=OeKSHN&+Q{M@p1`z1D{CtAtL3!^;0C^4E_> zJ>|Dq`RW)=Q!-s?#c@~Pbv7Gxk@IB;zIdP{TP4koduTPwwo8*6P$IQ9giJY&2 zZ;kXe-MM=Wxg6qe0CrsEe>=IH%in(BJO~sA;L=8@b2h!loT$*5d1wFo3a~1NxCp{a;lZyPG*{%HF3hxgk`9F^y zyYhc+8H3}1`u$ih?@RK3HK!Hr&umu=tln4XbtdqJ(9i_ zNm&DrX9E8~;;v2dzm&Qc@~_9zT4YK2-v~|nK}qLYD*r9~%}?@`SkwNa{BK46m!c(< z|D8z1FeEhe|FKBMTArOtx$d+Z@_#%KEW;8unzDBB{+uNL$53wf^1lbW)h0$LP6N|B zu^ZoAdP7JV@pCD%7`braS__5U5fcPkhVLWZwvhdaO635D0d z8Rh@eN&eqMTIK)iVcPEj#dol_Zlu&NV3Sx@`b=5=pCkQ8;M4Vaw(aL1 zW4n4MmS5UC*(U5eA^-PqR{pi)R^)$BmdpPyu;ShYj|OGR|3k^{`-5(zvs7B0eG+KZ z{~`bXffeirr777Vq@yu=Kc$|M{X6zg<^TNbe^-_7A=|b|4Hh_pTXNJ znXT73_|?kg=Q%3WtU-b``6N0 z*|$n(WJh@a%B&vUatxIFX{X#f-illt(VvdruohIVP2*h`QgqC${mwp+vFp;4{4VdU zo0o5V9`B46Pf~&!Ke+`*JA$E}Bez+l2Rsi*{k10(u;fo8PS3yguY^YHk9iBP*QWPP z*a*B2>y@#*vXxyV*dsL9J{Cg15JBCrtl2_0hIyK!Ws0f&$RfcWW>DVLS}U}kxT~;~ zi{OvN6w=f+ zPo%j06Z<4ul)~mFP3+ZZoe=`(f@tr_vFj!C^r|9jN}^cXAM-k=f%owwdP2s^-_^=p zxd^*LpTcMS^_G zc&MjJ|s4kyic+Uf3)EGKOL z^yBNO7p|cq|KosQJZ0J!tR05a{tEeb&*uL0B1X`|tH{5(=o#5ep346i-aAt$@3Yh@ zAuO{}U8+Q_l*`(dwP_i=SEiH$sbVbkUXfs3j6KZdo3v44V|J|e^pJloWm+SZFr}-w z{11W71Hn1uU(175TxY&$tI#SFx*_C$BxO6p%)WFn`IP?7bI~JnJUJ`>@^~CMJ7dL_ zpvETopFnwD>4`U#w_(GoMWgYwot1z4iP}Fx{wL924gH_XzaE3m+GwHl(X?xwZB-;_ z8Jm$(4x=AB7s%#7gNaZ^`JVIM_GGp~k{#~m|eW0Bvmw)~LN0YOwiYf7~%cJ}|>qejdTpuM6 zdi+uTT{BRtrw8GG6`TnEY3r}`rQQz%0(|CKgFe^ZY%seaLq zo>4CUJAiH-{pls7Usaa>)yVHwTF|Y?X$g;rkpENY*A;_5m;Y__ad!aQB}x8Q(5o9t zuDSf5igZT%XC;=Z|5jMBW|L!FJ=aEA_J%_zeG8!YR7Q& zP}cu>A@V$^?vCD+O;<$oL8+D6W9aC{6JVKGuO5Du^B`eeAhfpbOv zPr)9f*VOV#CcRt@$3mg}pASV>((~U)IhRBGad3Df98msGqh~dnc*_4CaNQ4o=EMCW zLHRf41ZYt$|9j~zwnCfNB>6u`ndj4YFCnYS|D}|-Z^6E&{(qt@|Ic%Gm>j=?pXg3J)S5YN!Yk!naP)HG zh5UaFUKi8<%KvlNRa$}k9xPyYVfp$?=zBeReh>No5w@}2l>T0NzRLfdeU|^}5MYJltD$*h9%qx|mxS1q^8;o+Jj|9VJO+F_5CEMwWA36iI>a&xzzfT@dUc58~MK}$^QYQbsW6C2l>CGApFYzon`rd1X+3t z3()2G2H%Enk^aic|EJ){+p!%f|9^>1Vn4hoD*x}pg7YGnz8||<{{ukvTda4RvkSAoL;v52pW`sRihf*{e?6E# z0Odabrw3=n<^Mt`*#b8!@^f)neon;#HKt^kvh!9@AlSCIY#iMa!4m7lwz zj`DLoJb4l;`UvctS5fkL)WJ*O!ZPeitFh-j)JOUGA@Ki@`g=NS4A0M|XJ3Q2@9UsH zm7jNGA^i{>IR%^J3hal)^yl}0>_Kc*(&ufdeqD?%c$E6}=ZQWKmg(~-82+@1K0lGFQCsE*>l+6>PqXg5t;P)dTB>?6@KsM;rBN^dtJ7ybU`M4F3GH4O<9rr!_H;Y zxH3)LRZ{x}4SRt$gSg9Mhuy$u_MNmoX#wymLf97Ug@t_}Y*euhLBud8+k#=cGL|-u zuo&6Hu{Z4D8%I-(tvx^5kB-zkgFjz^z*dMoGFx&6A&dDbwgJQ}V9n1t{^o98KDYF^ z&ijLbzdcCt3p|6o_W5#Kk5&r%lwqSG6GHeY*!R<(BTQi((a*_XiX4CaP|Up=e`l<_ zPKNk9DlD#!HrqEd2&d!C&J}b9s;xTlx2JBf@9&&`S15_`VR5wGKitZ z7IG}+5RUK)2)gU_FcfIDj#TisckB#2M^iKC+K(&O88HO@_BRIsMc_Y?r>*I&qwOoW zb7WQgXOO!seLXCur5Fo=%{g%;wB{DBX4Cp(UdpYT7Ec;}_}*Ou|$&UgKG@IS;D z*lC^czlpYy`2Qha=U37a+Qk>(f#Ux)zCZ7#ZMnTXR#gYCf1L1t z1LHv%I`bX0s2<^{;J*N9Tp7k0z~X-l)LGt+{}P@A|Br`?OVgayMYOqt|7TF<>-lmm z1O5kqUHo4T{;#ARVR%m`{Qm^}Z=whDPB;1`^v_l^S~V7UM`RNjwfVo9MLOUe>1RNo~qdi)8Eoadr`Fl`}#>^*((U;A3L zX-utmY4E?cjkcQq;X&s2)33W8X?@}UFm$B8Y4(wV|4rpKKyMi6(PsN%Ecz(;uYR}9 zA^&UJkffM0XxquLqG(@)hk6kUyPoL5f2pp_2QO@;;6KnC=;>X~f7?b)a0%`S^vL$5wuWbWzeu}Z2w?CNF zTDOD$W6{dB(@T3>C(Z|52K|=sJ(T~mp=4_z{=42o@Lx+-3uz|uyMm)H{Ev0;+1f~Xz6(a&$MUb<>7*H{_FSyWSHk~2W&W?nqiI|3iFvC}Uhw~H+FAQ({S2oSdLjJ35PF_fGrg-r>8&}5 z*p5}&my!RI`BM|s3byr!BlQ_n8wMYo0iE-I8hwFUVJYRv|CNdVi)d$^0R1M?mR?Pp za%rvPv~+X+?<1cBSUS#w|0e?ZmE?Lw&Ge@uY4*3qGgIt*{JMhwuZJqGPf(lxufW!L zBDRZr@%y_JYsll!{q3}255oT&liyYEAmsdi7!MnL(w5NfjQal``2R%jiFx})EG5DJ zKZpN+llcEN<_QP?zgjc>YP8Il)Gl3^_`jl^|F)oO^Z#txo5z*;zY+dlNbhDts{hWC z-&M2x8x#M}WOk(W{|5Mf53S#qV`aUy5dR;5|F5LntMN#x@c&utgI8j?{p*_LpH5%p zE-XUttK$FD^ce0*{Qt|E>1Sub|C6#=SvCJBWq77#JF{9Dtfp5G^uIEBEnZVa|1*%Q zTH$OgaY6qZ!Qz%O{jWl*i_w2t_6g|rE4=ok|CH<}V7@3DoJs$G#F|aD|1Mk9GVN7<2UEqF#{y2`_Q^5b*(&9|`U+h7CD!q-akj{T8#8?z8|aFEtU+vlqIdlDZP3S|W3W9I_`7FM zcv4iyaAubHJN9f_t1JH6!fH4e(f7jEr#47?RULzE6x+$p z*AoBE80ZJ@dW(U-t3GxNel6_r*xDBVxUa;SliDxJP~hKLgNnai!3$Dfe?~X>+m4x! z78U<#v;#Yb3jW$7JGZc7bzNIu;yUb|Mri<3Rfw_6?tsQx0YJ?8`Wcpvv>F5d)A^!w#_v|X5jTPVZCLWIqFYk`waDx8~EM7Ay|7zM?9m7$^T^=dJ{{i5Cf5+E&LJR+o zSzqB0BPjpY1^&qY8|42U^8ZDb{Fi5W{(o0GoOR8=Q*q^6HEsOm-wyS(M}D7Q#q&z+ zcph={cX^shj(O^Mljq&}9Jv^`5-NFk!S8AQImvoLxe zqawZ)+Q>ihi4u5`(t550t#9FZXkO+MN0b}iN57eoe+5EuvF+}cCa01%FRhOeguyWi zkMRBryo}@bR}V*@7$dh-3Vp|*4NGg3!E}Dp{JNONr&_(l%V$1~GV*?Vv{OuLDdJ#k zA@u7IIrxRs+9v*Sm^!4O^7RYIy258%{V2^rTacc;(lheZIwx*XYRIZ%e}0{%U3hhx z!d8Pg1*db%pI>tE(n{sG&iu6)1*L=6e)DtAc7@Loyr8naw(>&TqAB#HGbepn<0~4T zgQhT^K5$|e9@H`38TLSDsS0hh4uvkt6_1z&Eghw(lospGUpXGPhoGL;-{7@*#VD5; zOIcTk)XwM}NMYCJBJ|3gZ5iPW4{Y&Lt^zM(NNX|BqgaSzWKVphezcFIc3{wzexVD* z!F)m^7%P_+uR>OY#yDc^Gyg)?q(grAH1t5ktJEITm|K3Xl;Lxa{5M^ef0X=qubf0~ zazQxckMHsra>OUb@~QCxGi}XLc3|VZk{FVs7BEHBh8!Am4QUO0iI7V3TnXZ%6q$#T z7d0@(m2=5;+*|9Zw#z6>nKjs&4|{6p33Cg3tMwUZH zs9BUJ$3wlgP7Af8t&Z~t6>MQ!3thR|IvivE(eIJI+GCVMYkpH18uylPRKgsB2V&t` z+SaJv^q+0K-u0jU`_^IqV(cXL)>Thb>p$nyR`j3iUb}v4c=lK8zaf+;<;61BLpf)I zio9+Q*3Ml2Ne^r4Fw&_nT)QCGe^FbdL(EW?Q+nV!e?9b{t8mAhccsM|EDe3;=!7vx zbLXny&P9oFZAZeR&(jlswM=)^fBJ8S{&Oea(0?&Uz*)lvJ*q?hc`v+yPgB_*!l&+XHh?(T*O78V6O>$b6Jo9NMp90If38z5)hhbWH6JE`wcg1SdFzfLuA(rE zr%JxNvyS6F^xqhstN-+l_f7aZ=%L}Nu@(L2D%nbvt4Fw-dTsp|9xLiDHHft$4u9iI zu0%(T3_TONC%)5`6^AuCYHsKcpUXR+S=&MjMBeJK(CDGTaw)7Pqi~o$>TX5<$suLa zcjjgcr7HjW2H(xmFNAtWDR#`pHio@m>$^6J&^LbDxce0 zJ=Kqiyixz@1#c}2{pU;zedS{v7&U_XhUgdX%o?o+x&BkK9Qn}mXDD$-BB9o=m=)rF z#qQxDjLNGyNNraZABjY|Lx=E60Ym(z%kqzN4wM|d^7U?s_MbJhKBZL;IDVw|b0)=P zeslddk&*)QuyJeOmwRH-QU5varL@H=7PM966aQEd2lC<38b}LM1LqlZ9EY6~~08 zCW&x8{b`B6=H3&0YBN{yvAr~lGOg{SiEpUrzoqG3%ZtJJ1yadfF+%_8hwgaXGR`H& z7iRD~fPB@9QecjciCwM#rs5Zs>%ZCQeRn^@=m*=zTZ}~_*MAF>N7Y>Lbm#9z-r(<1 zYQZKl0PBVRI`;k7@FdrNGl^v`>OZ*<`fo0|&H}n=;5-K@nMn#)fpOjIh1@lemk_gh zVUP54j-wK;%vu-Yo9Mi_SWi6Hf9@=09n?QR^q(yYcjqyl`a1NVqeG4`SzB#4SyM7# z@R{>6-SNUXeCDsd(G$++#>u5HU6y~GQKhxivlcnO3F-jlb`&|-0&(3bRxkxu@yM-; z&L(iwQ?29LH%hVfIP{I(20>5YFeRdvh;D;?#fo(G4VrT>s6XlnJCZ2X|$0N12gGp{oa#$i?{?hOY2! zA+LGFUqxE=-vVf_rkjUEZveAu{kM*B+sRn%>VRJ#!i_+qB4Bf6Ixb{yP+WP?v@&DC{hHN(E6G9qcLvX9F~T?pNYsC)@$6(M=YBoEtNuHMyrLaYOaGlg zJjbJR{dW%c75#S>)>4Bj?UzcMfX^CO(SMtPwWr{!CEK9c%Nec9_1}S{|MroC`%X0S zWFPgyFwY@Y3-&`GSqWvHRyVj49#8W4D9)x_@qVQ`p zjl)&H)G+El=gX=8+|5ZCt#!_8tJZ&hfyGV?)PL@qRIUHC*3Tq;@K*iT%KP5+--*;h zcTaI0ss?I(uK$)&(wqdH`fmd{t%M(;|K=g(>OcKiR#TTwAdhc?ZOa8%B*DfXRdY-Oh+*{+cd$qLy#nl(QOjPD^xs9y zthhMozk3;1zX57YrIucW=kO!IdmbLHTX@_s!Jo8=(GmK1|6I|k=;C=V{?+Kni#t6o%IOqD$)#mTyzWZ=1^!fzY z{V%+D)qgiIGV>y|djq~4_b|ikOy2zr{)hg14!S%}{udJ`^xs#L{(FH~pXi|fZcX~{ zQDz*y6KuakPPzVj7<&FA`tJpJ@i?%VDb{WlGY>+`b`Zq6WP6MEUbW{!dO z>OY@{=8NBIO1f)H6IAl7|Gj$*ssF533!vIrib7wp~txCZYe1%BQusUzDNFI<2m zp8<}x|MsF|)PHZHR=um#0({r>qW}JucwfWkNd5Pfr2p=L=8q)(_kpDUUP(Ps|J~2* zFXi}_r2oDOt>1|>yuduFrv0Bk?V15C-U%;QsnOW+;FG1D*T>rEe{Wm+?!L9)6 zzZa2@(0|{8yC*RRU{N-fxoktST>lMZZon_`u2KK}28sG7c&PrHo&B1*W4}fJoriz_ zscB?$B`{6No@K^Zmc5photA*@%}}?Z{}!hBfA+lCgt3JrV-bXkiO zPh}2*^>;7Qb#1D@7a?7)19~}z=FLKa_xR9Szo?WO)6?WX?TMw+LQnLEh;88{U6_jbJL-ihwIJ=Ncf znYZ~M{JxSJwGloI$LsD!Abcd%-?stRrFc(`0{4fgCGI_T1o|CBmTyn>_l-QW{o?p{ z6RCQxzl*c2NZc^E)W9nImHOMC85o~0{T!&G{c;OB{3+tqm!78%JVed@QfYkl?Nomk zXYXMhuPc}VYW;2HZXWB(Pt2nJF3h6-el*qJdZb|o+I(U5qteE#1^7k*K~M1grk%h4 zlKA`gQ2SZ<`>qcBeLMB{`|$VX#NQtxg+Ii%@ag0Q@V&&}PbL2TI`Q{TYSrhU?TdJD zjit`N2$r9uj{jTY?|(7pqcZjLZ_4_4JIGv}wXibWNM_XB zMNM`cx|1{cyCFLn?=x&0S|Yaq z7i1qMpP!e8WhZ5aDYun1=j89ctS9ciKf>O0bm^wtlaQ1?`bBBBvEq`>|s|L9JprIF>EE+PnL4-9KFyOKU4Cpw7pi z!k(?Yrf3l37}M2i7c+2zszr0iU0hCxiQ|edCCEKTp8CRn$00^hrlrb%``YdzS~SFHoNM!F^>kHT zSD`PCzm@`L7Z2vUrysZ@K7HZ8D*(A`V>SPK8?Wn(mv&u8BD6sU|Fv3l_Im7`s&YSt zbk4zWd`_E+*3y`7T#3`$m2+*J=i>UwuC%VLM!U>Q3F6_(Q?B-1G&omy9@Lvm%g3>f zX0F_4xM&zfJ4+jQKl%bW{~Zk}8Wz#VA42OU_&=LmCen|YRWvy*Rqa8p_&x`^&xV`& z#1^mr75-08_NI*1?_5XZY_!H^# zcJ^BB8JnfFqbAZW4*p*R|FxSH=l{uAH#R}@oz$BJv?SfNa1m{>qTwQXAoBkT`V=pX z|84O97FyeTXt4(WZ~vY6e=q!}O zp1$s5@c$@1r5osDe+F)Tg5RQHDQ$fDe|M_?7tzDpz%26O{Qq2;|6isjCI6r4Bmci& z`azlh--UbkVe?Y|Yj-OaR+avH^WT?u`B%dgEiVtJMOA^XHTQ|HfopXZjRj&tPd``W=CPu}wqO7Eit zTjb#r80AE~z$C7#p^voofJ_~51+qmEG$APmxIRM>wD;*<@vm5u*a+i zmVMah$?Bz+6X5C4>*0Pm2Xh6)XE!Vk~d$ z;Ra0NZy91?sm2z2<9M%^qv;||#5J`&9AiffxAzvg=&d9*`oiI&cnEpS3KJJSj4VI; z-@Xa&d1>r3aTX8b3Z+-lPA?l}plFEo4WxuPhnDz%*n1N=J*)EI`?)8RnaL!ROp=*o zChKIK?EAiukOT-j3HurX2@nh+5KvIW0Y#__Vo^~lxFCX-MO>=ju63`q#agjiTl>1z z+Qrtl{oXELzyJSS&pppG%QMe2)bIP=-|y|2xu1JG%e9^BKIb~uImg^BTW;C&^*Z{@ zS^z9b{IvxLr_clsLw2>01Wdvf{I=KYonHMxcaqc?^z1d2<6v3`xTkCFff<*6ip%XG|gAhcmwa*(~i(`l_ z6@)$498y&4h`0s)h0V269Qli1q4$|{F2%;{T7$SNDOxUK9W%XvU4P5+!sa^HLP zOJE|b^4E2CrJJ5T(s=|=ge3Hf-c-`iXU5P*U~aX;r(cy+QHu0-iaM&#fq3dU6|$`c z6CNSfq9RUuG{%=IEDCbhAg)?f^#~1IwK~LAcwW_BKU_`Uks0&Um(#v*uK$EskAToM z#?!w`xa3gyi>d#jW=f;bf7&6GPwhaiDko>8g5Fxnpz&)B;g75rdPtmo<5qGFDGcv< zS1r-QOqKJD4+>nc=srD&1=`?@oDY-tMTL@mYtLw zd*N9t)qn0O=b@jw(x~T-79=U|UWUU~_q}G`P zMPgNUJyJveO@j;W^rs)G@Jj!f@uBS28eFS?CS_^)bk%9cQ}q+K{7&xO2TuK`KXvFo z`CG34oU3llEZ2X|fbIm#pjNK`W>SJNJIJlp(12ZM7Epx#b04l5Jn4cH?rd4oe;vdc z%ahq)GP95V6OQ(jCf9#bdp4X<|F!Y95$lusuO0aG5qI^--*j;0O+5kiaGeG=b0}BK zy}Hiz9i7`U7bxZdP3XVbJefu8M&MEZ%}=yb=S)sKsSUzK;3%#O$w6;!_bhcsNcEqq z=DV+?J1IVAa!H{ij#HtEIayWeZTw2QT&C9B8zF7>&eK|G5vqXr3)Y z9@TWqsT0;HYnndG%hJ=@_1|JF)Vcm!0Ccu5LjNs9Ry;c4*&O82-Q4OauZ_FVe|qc5 z>5~4F3zNt(_O*1id3`6B0rzBbQUA>$#c=dr7b%ueuAWPB$h9h0V96T?CFTI#Jj!y_ zdH3;LNxcdEr$1j8an*mb@K12{uNLAjv*R>X|Dg)@vH@3psAF#2#ANH|D0E# zM08`BbN5R1-{u5!C-;k>*aUKK13IPObzGNI)@*o}>%XPoqbIcWRKMym#G3&})qktu zNh|i&W#qe_-=*-!83nb5)o^ngxs>$ZGRj^B%oBlE{kNQ~LjUQ3=DsxxfqF4zyNZUA zx&ZuKtHLLZT)PhMDpITe^kVnfVq$JX{`8vOFpTkuMOedUF`|&`zg=Li{&TIPEznFq z@dh~Ffrrg1eslfjKD{GJ)c~*bJ9AxC(J49BDg)C+feGNx6{tJAk5r)D3t9os4X# z|2C560{o7)^0y8uo`Tm)=)b*SRcqKyPTk~u5q04-a%u+R6UpfWsB${6p2PS`BV0R$ zr6x^sTDkA;~+dc z5l9;F#A=2%q5n1m&DwOF&S=m1Xoi!4vYyeL(0@B9XD_9kz&rO3IDy!v3H|5l8*9i- z{dWPdZblw11m9DMeFDGRYKHFubb|VC7v}~>Vbp)uFrIJ{9Jx5@KRk4xllt!vWtH^b z1&sWt|1JcwZH(TWKn@4_TYyj35%M{Y9QMGSZTz}c$qCT-Y|2vq>D^gdm`)AL_212m zZj2;t=)djAPw2lhfFShWeqcU_xd<)rsigl7;VY*8lbc(>VmEdFB5+avU7z&dO^jcu z|E}fj3B);48*s$R_1`5>ehLye84Ryr{H&z^t|wLoH7=v9<_fC$p@iz?p_h#~3fY;+z_BFVdy7FGUx$gkJL)81>=)adH{r6nbe-FXG-%I-M zQF71q-_?u`_SJt+L!Wmbk4<>zKEn#%5AgRIWYYHE+l%_|ox}+J_c-*vjha4z)qFmK zUV3EM`tK<)JHj5r>c1P1?<3^#C3xlWF-AK-i~iFK`7l1rx1mQ~PD$@cdwD#`yT|x@ zl9;B^*L5Wl_6Bmgu~+{+0v?|yr;iZ(Nq!%zwR+%-ct15(59`o>V*SDZ{dY^!e|j#q zB0p_N{5mA>Pm=!o8s4W*qyIiu)PHYJ`tO}k_>I($*CLyr2j7zZdvKWg??X^zKC;&h z?tfR*e;)znPoO0}Of7wkdbk#Pd;qF_kI~?B@M8`AcOR6lLmq$BtN*@>|Ll*@e-E)v zd#?ZP1Sj?18^J>T_i5t%v}XE!1lhIy=lq0{{`*Iy>3$^T4b+FfC$Bs3C0GAF%?Nks zzrVqcSN-?CUj66FTR%bn{S>IbgZ_IKS$rOho50}x%y>}$J(${m|E>R`{rBJcuYfH7 z@2&qFN67zd2gIM%D@%3E-?%D28>_b97>brQ<9jyvB(CF}U#FKTZVpGJGmlEa5sm!M zeDaZ3uTAB+c$Dopgk^glBYgvowcF zA*a1(M+UX1o3|x8#_33oqct)9kkda#dMqXAUzt9R7@41=qA}_rJ>;LMeQVB+xwy(r zj;U~at*uR4_Haf7jqSLBBU-{GK4KEqTgMNiWniS`%Jy$%_=BdFFFaxpdq#&;n3HX( z@XHQZ9bMGk?)Zsxk8xTq1`YMJhVoHuAv8z}SLD(%@7cq?gs?k0>d2gjqZ&b}%I!HR zuXlpE3aj|Y3$5=;l=9-v)Ilq)#M+J>Z<8O&gZP+!@DTFpC}zlK_-Z>s<%n7?pYGlm zc}DK8x*%;FQ89s2_G6=P@eHsoLG z#7Y^CmWpl2RPFxaS~Rsq*_w9E3&$fINmKr{sW|GXRF&l45j=g`2M?~?uhhqwv+LO^ z|L$t#7>J{ht|;qRoD^}aM0s&{3rC6^bFjq9^*5LQiNHCQyc|7t2V+-=8Aba$R@QMn z8^=D{>y(4y&LMQOJzRn!-9D}7Vp z;@U&Ve;1H-lZ)1_(X{Pd6J$KSh3Vw2{423jprWIvL(9J_9k_SLY*NgnM=b{zC;4|( zkook#N7GAkZb7;HJ5t(B8pp<3NM9+4Wf#LO(>|H3()5?!NWDcl`Tf7caR7L$c*8aetgogP;cWlE!kmpHC()<$nb^t-yBFf!#&C#y+fefF4EK8aovwL(BKgIB!tT%Nx;WFwNBLhu z>6^Gao}&vMbQHFOk@BxS`NT@#5Ar;h|4mrrLjG4{H&p&N7Uh3+nfz}{@?UvAMk`bf z`9A}G&ZYOi4yexOnPV2pzbmYqM@b?7$3dBqz%FmPu^ebKcBG|Ja2CJ#P9)Fcum^?w zUqXsWST~gaO;`yhky9@J>*4KQj!l%mlad;M!1?-vhrLDlznJqz>`EsBr>g*I(VdA^ z#j%cq*xBY_yIlirA^&@l{O<*m-Mn#KtxBN|sIN@&@9d6?uyEw^zpq#Rcf-XaMftxB zOU=nx={Ar`x!9lNe|x3uk%5r^y-3<=N&a6-8b=9^CK~TZ@_zwkFNZhoiQ+0FyLh{r z5*9(JE8tFL`9BrzjRu}$q`V!voCL=WFc<(xmL{2##^x=#6ol(^?NlElk5LCCHa4C#q6&k&Bf4VG!ppQB>(p!|4;Mm&DegG z|0kjIQ+?#$88?%$cfAU`(xX@v-%R>Sp>97B;D8k^iTX z{NJ5)&l>Dq9TtOoJt;1lxy2Dl#b|Dj6c!TLBKY*!%1 zAH=@<+tjqb!wUJQ;PP{*^CaUM&e#7V=D0k@n)FXIFa0x=u#2~=nWg?-=Gy<+kn;bH zUitq9dp9co-vqv2BL8njT5m&c{~^i$^S$!_Zg}u7N&bIGDgXH2^8dfJ{A+#iFZ!FM zvsbkQOsqawt(Qj{^a^c%76WbtB2sf zzTLuY+g7WHRu21dwFY68|Ly`U|Fwri-?dr}T9(3}ICcio-&6kU(_2gV!GHJr)bgND zYtDaL*40Dse{zxkde3U3a9!ov_%FTOxiFEN#; zweYWzn8APjXXU@M_~rkMA$mfPpS`pT`UQu??G{@Y)k1_k85 z_J#TVqYZLDC-L8&t6qf7q#FkX<-cvh>YdX7?fS(3ndG!O^>RAtS=G+}g-P00(&`NUd)@#{)kAmU|H5P+a4+wi z|K0F^P4(oo8TGr|1=Y6|`F}j^vAMLam@xGipeFCR|!U z|7J%S|9A4tK4dLk9`awWr%UJ?2LI232YSR@P&5BGC;p!S)~-G|t*{;WI}U2Nwp_Jv zGE#bVk^h^hGl%fPID+Kwq2+x-wZy#7(6r|vE4!h9{68PK>(jY5{<|KQez*sq{f;vJ zUk(3ns-b+nz4kNCe?Fu1dS1<;N94M0C(-V&o&T?Hzg${$B%ihhV!(C68^@nhAC2j<@@^8YzJK%Pkazm4;^sQ<2wRxSJtYTW_J_s|K@)+>g9coQoM}I=uhO&;?C#MQ|bHOw|P&+_VU2=rt?dlAGR?g zH{ayB*?u#B`wV`Q^WYQzY!^F@Yc5en#IW>uYx_C+9FFAW!Ircmu(s=?ZJ+m-@)(}Y zRlji$Tf(LEw#lPE74vRmM6LARR=3|<+hM}zjKp&I%`@6qj)CU1Dy6rzlmVTY{x-upXNE3r}&#o%ph|-F@G!M;;$86i<^C$!SHu{&att<@pt6X zu>)Hrj?b0nANV_d4E$rq ziFT~Y&JeL(ljk7*Yq6+}p$#yFH(SyC<@x9MYmc78ciA=E*Y~Ct!Zwb|`0oPW^?Xx; z|9ca(<@ldb#Q#LNu!C49L5tJM@(=ts^L<|qY-iF=>5Knvay(MR{{-Ie!;)BD13U5j z9L;y-B&09L|7ail_h2i#kur1qk78lYsiXYwgD%%Xqf5a52zKb}v746O2mY6lMINC=Ys)9TD%zyNE|vfKt*Ir1ea4tkdf3&x?*APdJU4sy0kvA% zEA_A6srcdzo~raT>>7@Zi$Qo{nc6!c$f;UN(f7)4h2JG@QsI?h=~{N;TiQ4Fz&qj9 zsub`Fjs6YsEw05z<(D_U%3|*q%(GDWWvXsr(#s}n9DY5FAK%yTRjZyp=x=#`2Q69K zfId&+Qa!!CQQ8-T)^C$G!k~iRYI!?!@Vi~|?XhR=$_x50g|)0Y|D5YD|FyD7G3|Y> zL7=6^Fmyc#4in%1Y_r6CX=^&44L2n#=h?E;43I6N9(3z)p9%)@e=^jN|5Bn_`r!W*a?$%n z{yP`U7L;B+)q`sVIM=s}U)Rc1a@_~RJ)LUf|NJ8VEpy6?`jP~v{NGXJ|311ujh&U zKb!MXj%p$Je@&96QxiInnqH4*ZQi=ap!T&w96NCTf)8?$~7m{bZ7H^FH z{J($}U+w&VS>pdTT82|ecX{Ifnbd#ze=5Zct^afWzY_kxl9B%_z(D?A4raIIKn`)9 zh{wQXSZS^)^8Xz0xdM4Oq0j^W&m1CUy!tKpua`#wn^b}E^$Vy21xDA0$N#6`|5IT4 zDr83fU&y{Jyyeu+(qm+L>~cpul#bN&;K$GCo+^9MPKjc}loSt*J_P8L9R4)0Yw6~Lv^3AW%!?`MriTD3XNUd@h=vh9} z;^vor(+Hl`)!BK?xQna05p)lHH(_G?q>j!hQ>RUzF|%v-oO#^~iokuA#BT+kFLJz% z>o0NsGRHeOzQ!?zXX80u0BvYqcstM9Id+m>UYx))Xqf2f^HVuAAjpT0av-ZoHjVRg z;wroFU70mb&&eF7F|B-%ua;BfGqGw6St1Pd0Dt=OVl9nE)Q!kEMvZA1JFa!SP4qsY z=i`+1Cd&LY$LF~I0_WFph{JDl7Pk9&{tU2vm;-!$m!5CrdK>ScO`?HxdK>SQap@+_ zZsBZwf1cxITob2fFW18iiQAwiegu#MyKF>5Q}fWHxIKRa44>!tQ<8p~^BRud=Rn3a zN%ef7w(Ft66&RoyF`~YHBrugl?)fM%e~RO`!23Q9q%_eG+9kR{8)?<&`R=j|yhN-C zh;lZdL)i08-hYQYKFRruflI>a&0LGyU}u}_<)N;wzP_QMv2nz}{0qMaY|jC!e0?L= zInRqc74AY4N6zD$h;wr>K5{Tvu)e~=5eYGkCPRg9QSP@n;9KEyMSLC_VWla%`u<$s9tGn`+|`2gu(!}V*qzKrXC<+zqI{*&XMxqgE4Q=FgXyp8jA z&O10un|nCAN&805tBdJ>p^hSJGNzP>$q{_#*c4poiK6ygo$nZ7c&0g;$UGq^;zBV@4)dN z9J9E$ovQ47p63^FoWQmE^4(n58o+5n`{d54vxZL4^K;(+EqPBM!9Q{SHTUY!slf3s zT>mewZG(4lpx=^SL}#S7G3}9_xg352@8jKku19e_mP37uyru6DZMk%>egYRT?s^ZKUIHcBV9brhTBbLXWr6`fpyz7NwTJrDur|KB zrU<)r$Zu@P*q0;BGeXZeWa96*_y?|k#X&p2Fqvl^9DeIw&%yUAwTu03xA9*1uH-rG z2EXB{y^0P?eY5?%LvN?HMD-kR4Ah9S8-$m zI$%u8q$z{t{WuTr2ZpzBejA7K3r-2%-CTcwYjrcY=lo0f^A2-jeCOrs9UQOW{w~h9 za|W+OBV`}FdX{ls!SUik9m)9G)brUXWl+Sc^kA^7Ur_enaM<4&4Nq-{f12Yt4scIx zaOLxIuD{LkM_fP8S$b3t8DGI6L(&=d5#>?xe1vmOv+dlYHyDnOA$OmvXVed`;Jlyn zkRcUZwR~+ZNq%>5UP*@5wequdgLi#`UwDr6?8p56jAJCUYv8z(YtwAx*ut@g{QT}+ z%yBITbvAvw|A6zGc^?7d6XG|X6n}f`7~hZ7_nyjmF2@XxS>z$ClvRFC?YEnGb{X#? z04?9W{I2}0K8LoL{30JB^-SYv;l90ePG#ozqauD!DMPZSag)=8*Lmpq30L;7q{VAE zq>J?VIC+19V=vd|aF+MTK!OFHu;5v=#lOiJIY_#WdT8j|k{yI-5iNfCPW8N-OKAmO ziEeYbF48U0ZadEp@l5{kyvKWK$~oCIykEp|IS0Y=JyMspM1y$Q@7K0|!X4USludL^ za0tT!o=H>TD&9-?M1S8c_LQYf+tj^a+7EaGM6smRJu7>3$Ddjl*L$AV zlm5~(Hhklb7(Sx~JuXRBA29tc(F9RMZ5-F77I7YHt0q49zIJPH8wgs)tt=lPewsmLrYVAL(}B(9nC8@AGdv{ za8wK_K`Pdi+>NPgsH-2_+&HGLv0?0}5hGd~Tbdi|Cr)UYGMO&BwALg%C>zgUu^i54I05En! zd*}47*#nwP$n}^pt*!0tlO|2J_1lm&H`_KJKYqf5wzg?A`Ob}L)f%b>OhIj|?E(#F z-^xB!qn0oJ!TAF_pvQ4CVl_u--IuH)g2hmNG@Lh#b-4;|>L zR?-3zZP<6yqOO2t$IVwQ=^F58@4;hBx_TcUK71n&y81p5F%owz?0Q9WVgD7^-+0rZ zBUh8vK(Z9Ny1Mr5yKdFmb%(lcz3#ddOZ;7#e#tg&xmdZmt1Ade{1iyEa@B@Ii@J^$ z2}gOGiBo)?XWHjI85t#ovUqtupi%^U^Pu^Z-UDuhvVt7GT)w=^+zuW))^+ub*WY}! z>t%;-x~6Mo*UmGJ34`UAfu6wG+O;4@Yhl;?ULN@F;&}%y1*!q*qu$d3;F??3t&wo+)+`9Zt+-{^1~VxKJ4Axyix>0em6fXMs=TW9(HCY^Bi*S(U5mSl zGE)vf(5)iBdnvG@gnpr4`ZA(dl-FYUU1i)0{ZY)T3i|*f6fs=LwPv66K?gFcSak*w z{Q-E?njSQ|av>gA{{*%KM_)NCN2C(7SLe*m;j2aWC>VMC0X(h9mOg5vU-~i}hDu+? z(z5c)1gc`(%9S)CjLkKT_;1w4B7P=)ustgrAs=V2u} z=3K1wKIdbl_c3jJ19 zq2H=1^jqCaKV?iyNY8AJ4{-d72aH1%j^ntH;~IOw{em`7ZSsE_@g1|uO*|8`krSF2 zUBxa&q%e>bQ)@vh%$U|VdQ^SWn5IUI0;8K7o10r2n?{epXb`c+jHWY8X1Ku+_{9>y zOH6I?ek9|#g9JwwiPzNJ&^C%f3r&swVhpIOn>4w3)@38(LGSxwT2CXe0VOx4vS(EdDaRw7!wb?zEoHEX=}Qx`>eq?Wt-2ZKE#g+AkoaLxz6Q2i(4@N*FTp8eR@4aF`FO zfLHZ(NQ0^-Ir;D#^ZxXnbie>hJ#%6lIEY!-S}Bba@kgd>Mc;Wl&UGEjZ|uJq@na62 zYX&(Zs}w)>0CTS+<2!I!UznNVs7Tw0TPVyLB>q`E?ku?od0L}RJs(x1uvde&%t?$u54g@XOUU1 zGdV}5JgcYAW5|W_;A#l91WRv zoQ3LqSoc%v&y&IOa)oo(mlxt#r{3A1u67W0cCa+%&(sX+iT-6d53rWt`flzU?8*a*650C#*Tco}Glk!qi z9yZocelGd)-Kj! z;Qv&p);H7@=Jb6~;ZFX$Z|wXc|DAnU&+N%s`M->YiS^%|TuK1y9(PA!F>}t=L4k$j>MpO2RW6-;L`URv2{!fShOGz30cg48r)sv?$Zh@4pdtDxC=l}Y| z|GlgTwS^g^XBT$Dk8{&3*v;h`R=B=`H8Yyw;pvJ0=alh(Q=xYLySDOC+(@p5|2G!- zf08aFRfGFhy8pAgR8J%2bmZ5S`CW~sHvUgXTF29zuPe-kYdQZr$fFkiuVU_97u}1T z|Hrc~-1fx(Wrcx*=>yTZoG!^u%H9p+XT!~lf%`bhz8ojJ+W5blw0-%%n__C^|HZ6+ z(gW@H;vARr{}T9rH#Di8|BujCdjnGZ;xMgH$i{CE9%_fe>o|F28@KM1$R(b|>&_Z5zj)9tzm zRt|BqAu?n_R<(G`{d_f;*uKzZA;6y7az(`cj^iAjp=@5D6>2tXAv(IY_w)%5OqrAW%`U0*YQtAb{ zVzz$~-#5{7iyZ8++vCV#j`EEaJ&Wj%TZZYPlstD+290Wix)jU2%+tQ3eE{<*ts+!v z!`dFUM`y{#vyT!fd?TI#k#F)VTS8%#h%$sSuI#l6uj%YHTB^AkfB3=gba~3?`2;V0 z*FOYDT=j2Ykoti`#PUwu3}Wo+K(3{&tVPIkF;*V4_^O7J{S8-3a%VMjwGSahU18Z3 zq2!Hpj@{#eqV`ObX59)6!L#6yZ_Lrv1Y<=*v59@#Vr3(_WB*)=Tb>+=)yQk@^OvI~ z_e>pp6%%vxY`MbkwXJC_OulusCj0z89g`riuPapIEWWN{=sJn6KoqMgdN#c{`R9s> z_V`_WNSTs$vHDUuY_(iVW!Ds!z9Tuiy0~S#rl6~yyUMojd}6Hn)WWlWEk^dw=4i>n6KOwsr{R-JN};QWHIzj?gSFvf~2Q+wr~@$$G_yoeCBH?)~jFDyQjp3$SW?nTY; zNb%eA?M9ZiU%R~q_XtC%%L$yeT`i>pmZ2TNB{qjYYE5tLc$Rao9) z^-^td%B?aUHaKgWt9lt*ITnV1SZKvj`bmjcl|HVlC1RcHBPHK@WxWoYl{H12wEdW? z@rNJ!>wj%f)+@DRD@SO_Qod2kTyHBv`FkygAqOQ{2-%PyN_*&k@rV%mKP>He%;KvW zPTI}1_PAb{dkVBegIEWwnX~KFYt_?6;rjjVaJEqpE9Yds77Kh!>kl~9RY9^1*m9Lx2;+Ai1su78^A|H)j}r!}g? zqK>Ov|F;5-ximoqb+9`%v?t6wo8H|GnL@z3Htrp*=mfX%Ja3@K)yDO3Lnm~Ly$Rgm zQ2p;tgqH8R|HA5ua*gSU`hOz570b5A?66u%|4${RtI$oO=i!>KllXHd!zpmf9-%uY zy0UB&PhHziPFZ)=|82zW;LeF4!wuF*@%9^PZL|)Wv)5`DrN{U26;dxoom5_Yt5ipO z%$&SZ{>>wDRtrTeOHc>Nuh7NT2Ib%UBQGw770go^_N+GZJF5hQu2aj{77zw?r7%01 zrN)s%YS7T8@kZUQhE+@Y{dP}Q&qAzj6V7OR*lLM!vDmjYbUHVEwoLLyIzLH)*9P_q+377gQZkZ-zX(fKi%ilIxZgS3hj;7 z-~X!qcTa!}InVWf2l-A()(iFjWZ*G0@+|cK1Zsj>N}1M1-40yVXDK@h2-}fv;j80H z*>_z%wS&8~H1vNfXRZDdQ`vRYCR4na;KYscv4ZjBS;G;jyBHdT{_o;E2bm#O-H7A1EOcVyz?0)CaI89>wljB|MJ4i;KgI!UMgpTqOHP~Y-G z|I6Jbp4T?!SB|6mTDZq;J$d)l|J^(**Z=c@yNhyHA`3J4UCOBM7&Kn!|0!Ix^445( z{qL?H?b!B5GP>YCgs!tV4cq=g=+VY~8?je|*J7S`f$g#+h2_vyzYhJsnDlF~9ZUa- zVH?$-pDw^RPYG>KNE;H5_2UmZ9+cQBV%hw+X?hjfNlrpKdI|QkvZBeO}#_~SzN2w3hx9UD{&b)-a@A4g2{R!10XxFPhv`p2D_LjPNi z`w6T2+<(|FuzGePkhlhV=>N%J;@YojlLp@VCiK619re}!)>ZYCaN5df;NJa@)C_7W zwUgn+>VHR@{QkSYax+)z|C!v)MqX#bUG@JAAXM62UDdsm=M!flb<;INnLNo`pEal2 zI)&8k53T<1Kblwug57o*N))Tz*CtihE-3ups*x&}y>7Gvtrq{iNv?vI0}5&G-@xj;J?nCBMX z=UROs*mhIeabQ@||Ca7l-EL^4BiHak=>M(hn|U@ea6W5>Zh>;k3#V~b|DTEbRRh1r z!6)1Qq5s|eCiMU5NcAq_s{dD^OLoG=ajXiz7G9S0|5_kc|I61ilPoR6R^P(C?TZuP zZWGV{EBgNucwXNAznHtw|C^xtDR5f-e*s+1_5bCC?MTi+}8x|Bcl|3w^^Ah~R{bb>-X?NCnGMd_}j%8)+$Q78Y(Qr z2~hoiEb0G~`sn{Nq2m!Kb~BVa9~gGQokm7M8hE1qKdbQ4LG=GV-t0vGpNaHb!RXl4 zxZfQn)$#D{0Du1#{jW|DZ+j5#Nmj>iwExxr?wH};4DJuFrORGsD;S6V_pO@UUC-@> zxUae%6ea!d_s-ssv1ahbQDwh&(VkGtsWU7;@){oXbxZ8vZ!+gx|GNuC7ZS6OL;c@H z=?jyt6N7og4gK%#)U&8}?n^d<7%lM0z2QcH!35w6kCJHrFXoB*-(H(*9M7Nzw-Vnr zl4HH0|2udy+z{>mT>l@345|N@Q`$-7dJ6J!3h=B#Bh5gXb^-k^p0`oU&mhi3Mh}-G zK|51hqm^f?lK$TT{MP98z`Y#`xQF>fG(sm@Z6`Up_g5X-W)^SMZtb)t)Wfz1hZojT z=Q8%L2>rhe`E?xaEMz?N|79-DfTXSij$HrmN19JTl9wX?rz6Xu|2H7b2axNvNci!{ z`bscW|DVj&7UG2d-;=&vyU4v2im3ljMVjoXy*T~98}6%tUtNZ_`hRx?{eKbhcBZ(m z1%e1ya&pYuVEg|t(9VV0htrd^L_@l|0XlaV?iy78-^`oaUxfa@1`c1%XyH|b{VaWR zkd=tl{|6Y)d>`jmz?U-_Q&j)I4L)51%(t?-aSvm&q5m&{1G)ac9_dm4?<2?eG9G*s znaSJ#Ytc_PkZv8C^fCB77y6t{dF#-j>i^66dyHeaq167brvL8+{(F-Cza7rM1L^rH zGNt~11pMw~agf%+=YaoO;C>~GRWvXL`#9tJUoKpic22t&9;^SqRMh`pK-w>1cduuY z{{IxXy*T~e$cm9Z>&&1@D2MAqTe>_5Ww7S+9bcuTEcyufVG#!1}k0vVRNt z{}hYmyb90M+mrtP063}tpJo*J37~#+YX3i8_%3zelk6k?75p5oz#}#E|F@|p9|fla z_&(VFe!JX=C7T#2sO%$t$aXW!~GG#y!61Pqg@z3QeV zXm$5Y9GCi6>VIRYtJhK6Hjl;b}Mp!8YxzzcXm);PEJ}y{l5v$O`u-n`hPEa z_9A3&U()}l^y>fJXujcw@xV4FY0If-$&&uR5(&7f@F1{+{=b_zcfsGu9O~(NSZ}+p z{=bXb_b@g1W_0KdS|D#I)Bm?oH?Cv}tV6x}Uw?FDvQ)UqYqli~9dR@vjN}zc3qx z$IbTad1~kHv$T@>|JUpo|1o6duh5_Wgj`R~_Gaq;FH$rAIJGF&7UpF);MtPv|387l zq5sEZpJEbDYu1`Q#&1G&7(Z(8$?1!F9=d%W^|1~P52k7Sx$zA@^bTd4UZ{d0)>&_9Q${g1y0{qqb9 zJU)TsX@9sFo<7f4?2~+%Mr5IXe#|1>wm-YGBS^rSY;s{urv6!wJzV$*f6@N@AGDa% zKgVUc{u!5r{`oL^@^gjTsQn|dEm`QFU+}%S8|nXEYJX18-i_@25oKP*`g6k&ofLID zT5U3N+Qa@GFCagEp5*5}$jW2XvB%J&uje~@KUDiCmIwPK^79OG{Yl<@3HkBulTh{{ zzQZ46KhN(1iSqLV8ekzUsBa-ZdS^wfhuKT*_sYIsx1tH&mE`9UV2Qkj3xEFo`XO2) zSVAM4}iOio3Xucctg0d!Oac zEiunwVClxv3XuPWpMmk~(&4Y^J?C-aZT=>IZ!QCa7C&P;ijiMyhlm_wWGZ|ZqQuB8 za?(@4v?DltV!ZyLK0Syx#xs_qQ4L%^C`Ivq9Bzak*aNA?_h6CX?S zjiY>8mmS#}7|cgM9Oo-&GY+b1&()?BTydP=aW=gF`{exq6{y8q} zUyN^>hyD(Ze}zR`n}F|P29OqMp-0Aqnet8YvH?0GInLkfc0{z`c{8$1ol1~=qq z?)T#Jk_6@X^erNC%K0DEi5!BymY{@qSBho6K_^p$mxsI>7{Z4n(&nR~`db8FLt5p6 zX)Pmo9y#Tsw^Gh0gUNr4hdF-W_^JHYH$-lmQ@Q->D`G7Fe6CNyXpWG7VQ^fbf6zx> zo0PK)l@ZU5PWV)r^=wee97zp$LJs9?DGbcpcS?@G?Wug0;3Mylf33RCnvv3ubZA|T zk!|JQ(Md;e9g}b$Gv(h=&w;^l-IDxkT{Bh4zojbI%D=XJM@T0Cjd7w3EjFF$jkd1A zI6{ zJ1~EDx>I_D%xj@>gj~KVTk0F-P&^&uauIj$9H$Wu(>iYElfmTQ(QI>(`|h*nY}6_I zHSpZg`&QD*Vax7FvD(R1`Pb*Alf#_^C!{j;f$1MYDnkCJ(JoW|r;|g-zvI|3I^jH_ zkbh+`A9D`*52+kOjDbPj;$=_YUaP zK|5>;IcOiAQ9=IQajqo)i|HFVMyvcgI;1pd9aa99&`!_g-!hE3jQm%pH#2~7Ab%Ht zmGZwCI%*3Z$+3ofRzRaVdYQ96nwAj7--Pun&x+7pILem;brM?;k?`)oIG4 zvLM9Dq>>l%uNHHh*HKcXQ6Ch&kd(`@#LMMhOMCy|tW3xMluk9A5;~6ScH$~SA^)x9 zuQt*mpy!Z&QQ>W13MI@jSpB~Ghi-V|&Xvk$H*sy-PbFW+MU{WGg7Po7$3P9o^1O4_ z-3VgNBmOjED*ukC_79F=>oL(ppTC2{9`!o@8hAbtt57Rk>*7ya`kE9=`JYMt%jk6| z|M~}n{5x*mKa3-+kr*-KfWmc%jlKl^1qBcR&lqS_$B#wzeCo^=McMr)G@yD zznq?BMo&v?^K{@;{*NckUY_ovuX!T!wUfJ(!D}b<7|Hc6O7Fm4q5PlBv%%$m4ZYrr z$t7?9EM~mwtfKs%2c0vlV>7U99S4ms2a1sYUBt=d|BNL6=M!rmrS}g9=o@U~&lz&3 zL+9f;juP`QaEAP!gT-_Uyg!?#J{gInNd3Q@xXS;z(0437(`L#aDF136zwGwnJAtkv z=_}=5FSbcM9gmbK|9Y*B;a3Tr3Wt^dHuBexMm^=XS^4T4Ow~p$&5#r2e^!#qlKfAh zq*+)knkabzaYFv*5-a3?Ht+Q$3HetR`-W~tPn7@d^q#268#VUjuer<$pK1T)^Me zzdSr1~#2~B(Di6yLJ%yKOf6+$p5XRzJwB6u!^bw_fUfz$G9@V z^iq0!FXt-ce}8&5iYF!cKW9++zZ>2kN%DUoJ$B{)<{}2i1N8^7UcNKQ|NU6fwSQm6 z`6j5X{J#lF+k@pIm;dVqDWSjo-;cfi6TR~PO8EY6X#E%#HRb=a$jZx+n_a}o<^T66 z@h!ZWL7#n~{Qm$7ew;ro6<qU+>8w0+6#Anu?GrofHTVf=aT%tkF?7F^W^$alK-zV>S5X+ z0LAyPwr-=;FJqHfRrq{S{+}cL$Klg$dA7ahpJBUt2bN#jJK1*ZJ0brMa8~}ci>}cf5Qs)z-Q?r|}BGqNT28*st`Tq>{;t$~Mb*#) zkv~KOKa7M}zdEuDvZicz_BTL3E4vDd+dmf0&AwAOJG+thFU#uDEt{d-FZ$))_g3WM zi2ii^hP9w{Z5r*-MoC`^LS^pc#;xS`N=If+7S%(9J$RZ zJ>Ypj>aRVSfF*w#aVr1XzY-d)KjtmGUYp)GVI%N9tXIbJ%2swQ!5*Q(_OTH9g$U|~ zWz814G0f8(EmKVGN7fSTVFu+*t+hhy$;k9Hhfo@76Nn%#w&#PM)ylAaueZEj=k_te zk`Vn2^YJja?|WdTx4Z5Cz&pJh;zuimGB zhR8g!?|HI(GP0|+`P)4pK!FrM~T$p4f? zaZ^vHtX%%hMbF4q@>KpO@!pw2d7q_P31OL)>QW_YrCipwtWC?{y)va7NEKtL_i72& zMX4QiOWG*0F*{a!ddR<)GOdwHn9^0d{Evaoqrf@jU(175TxY&$tI#SFx*_C$B4s+pu9(qfsYqXXW31qV|uF z|7rABL;vUUug9RXHo7Riop!CWt!fEc#^$7y!Soh#UJJ0H3PMJN{Mp$*DmLrmv+w1*weP*I!LZQ zH5~b$K^c1auLU~ge+BTm7S%-hiy{9Dfj|%E)kxSfTDD_(TbulpKFD7VwA& z`9F<*U2X8^@_zz-+|z;WiX{JQ=+%uS*IfS3KsuxSvldI$iS#CGmH*S}Bkbsv|9wgR zFC>S0dJYGm$`N|@`;z=0qwL*aGXV_GqLkX?e;SbZRaO3#6TepaJp291xH8O4PyE8E zJDcFN@*g&_6k&)T_5XBaBIJJ&sU5@7Ls|dlrO5vRu4eFbIY%!4uJ1N|h+Iprl>Zap z)(PZX!1}Wpjj$Z483l*8aD6J=-paWo|EFOO(rapUDU%_t#$%yS{x5=}Yw7uKqnvA? zeFq$#2nUq^GwE5)C!X@ZA6&17Ka1ghEkXG=<`igAF8>GUEp|hjS0wpAOqmzacP}8T z%Kw#=xxJR`f$nMYP_JK&d@iJS{X~-gd$E{|qlda433_Kg`M(%k&%iUNmhfimd+Pru zi}L?O{uuh+ zMxH-F{(p*XY#*h+pPsMsfA6s6e>S=JRa}D1FM=LjNPBm${C9CL*VPaD)VmtsCU`Qh zM)^_xPX|{mx2xgdh9v)bNR{OO!X*FukkZYRKY{vw3e-Bi7V;A>m;Vc>^{3(qbmt)Q ze`k{aLr7}}ynO)qzoJI?mH&H-^8YBZ^fVTrYw!)e2j3$7m6iX`!jZROJ5v7t7@Ne^ z@TOMz{{R-8AA#uyv8!d+WS-;tL2~+a;XknJe1a`IAAsu0|1S!E$GcrvSH6a?)Ntkh zLqPQ(SnqaZmt=p5{=XML$8mTS{j4bedN6+o%6|w>kIrhB|4X1`7u+n#&*eq=IRgva zOx|^2>k0X}7EDeB6XoY%jr1Qy%+rBZ`MDqJC_lHslc%tvPr%N3JtbdA9lQcAtirCe z9(&$|5~m1AX+T^79@nq#uDJr(ttkgZ;2J{rLkRdpEW! z>GRf9zb;1?JVyQc!$hBV7wPjD82+M+K0l$XT0%~rUqPRrm#P4r*_Nr`E;o?mCT#;G7TC!U54?CAp}?V zqy@mM2w_{W7Z&z`uu;W21QElWYzv0%%2?Vs!eV3($KJ4qZyZfEw)XsJKRQzH4E}rt z0$U;W$ZW|Oge>N#*ai@@fHgno_?x?V`P|auI`0n#{`MfFpBGj(q7l!wZIq>z!ail# zXnY%eeb-nO|7d-ObwocWgDGtQh~#aIe#&WS6aHFt6~ zpVm)fN?nfsCiH3tG0q47GtiEw^y0q0>re3tdWe+`hY;_nP}+(P*8d`#PR2Jznv z{^x=JS>S(S!v7rNU6|hAT*QAj-}Tpn{}IN(&g_T(owSX_|F`)%zl@g9UcLY?Da!w| zXzT-gn>%O)ivPFx{=A2_byj0a`t%(v5`dX%Gt{}P~aWf*4wi~nY* zv$_}m6+8+4p9mFKra7z2Xmbbu&!)`R@a0+s{0{@W_`d}FUq(B^@V>`Tsuhek0Y-7^g?zXD(BJpV6J`^xkGRm%U2EYCmxPQ>>mWeFF`?-Cdl ze?lYYxu_pZn}^a>{-pmozAEZ7?M{vB%KcvC5@&n-*Kj^0*kZ$~p+1x)YW+VHnL zW9tJJ-?13o&{wy*jXJ)n!8Pe0-&g5b+X#axbHBylUvN^*RBB}qsX_=!#rG_})$-r3 znO_MllS2nbAEdX?`eoNLV0%PbgxBNH>4X2;*P=~hYQ0N?|J7}@<@^s1GQXdG-StQt z4*$oYBlS(Qj}-iGDYgNI!a$EU+ZU73N5OyfyKN5nU)_cz#gswYPL35t`yxElYq7Aq zR%GyBsw?xs3tK7p4-5r*dYALxwowat#maSBA+>r|=f7>5;J@o2**0-BVmvf-<)zTE zLjlp0T02_H^*)|LTK%PL30eQE+kl*(Vl3zFk0!O&?co1pv~uK??R-5O;oj=R|Fz_*b$;m3m;cAn zwpdCITN3~0(qgF=W?&IGnMgZ|{6B|Mk1ObDDgS*lbjbO?Iq`oj{NG>X{}w!&P8d2d zZ}rIw{+~xX>maS4@w7rOf&Z64&vUD$cXcSeHK!5Vu}b?g@_#yiYNBevw*GjeK7(rG z;Da-ubNuFQ2td^XXZqEOMg*lyLb@4zbmnZJOSO`MjQ4p{J$gl zT@4LF&i_a7u+b-N1?|qL|L=qUPY#`!w_m|h68!%|`2XjL|KDPsaPa?|RnxCW%S=k` z(xr+2YkK)_3%WZ0&!fG0e3Ad#;QuA`ZnmcS?=1PfRm;C4@&6oVM_T`HhyM@I`h5vj z*1K!s|HJVAWt4jZ9!VwsKZ||vIxM$;R<-=I=&Rg^Md$-%{C|cX!vl%`e_S>F{4Dr? zN;WSm=l`?}&$Mh$RxN||^a_Ih*CnsTo66{aHgZ)hoQEYY=zj-T+*PFi^+5>u_tYN`AqC&YyRcfAlpSFgxSyjx zj;Hq&@c&0)c_#cnsvtk5-o`-kMi0bN?M0OCN^sb!i5&dG=XS9CyAzzRVFk+H z=I8KgDfukr&-GRCn`IthtFe7t9<&EJzrh@|mT3zr6@Go#~2@{L{`D?4n z?PG)CA8%u(k7EM^@sBl#?N1DizrGFnIP?v+#{z%%>! zUjRpo2gBd~jy;9k+E<>t^w;;o)~7Z|dsTgdZ4}$d&eszE{ut;7?|O@YzpFm>4Sp@` z@z~lH|F|#3S&-T<@;~tJuR+CMuiz!AuRmuH{B6f9MvIF7EZTwnLkWNFk^NiPvAV9U zFY%vP0soocKLgD>a=;gQ7T<$mItvn_2>UqzTxfY6!FJjb^!jZKAxFU}&`R+m& ze-j71cg@LFv@x7DBL1h8lBTO!jONt?!zJXf3H-wfR*EFP+H(FuwVIs|M&364*b8?@4fi{doTV!9f1EOnf%|t7?=FtgqL^U za5TYxHWshBlz#(luD;b?>$9*jnX@o@AEP3^723!@@`)07kNJI|2I&x-&Mkj_$;C@6mESt?(_$2q z4qp4s&pA5~K1c9^%KF;M3vG+0(3j4f^kt2&Xm}2q!g%_?iCuV5$9QMh1D&NRw9z^g zx+qsXVivTrBt@mPSoiyivKKICf(`E5T$&dHSN#rIMghT%LE{`Ecd}1u08ZR)@)*NLA zHr^|VAvtORQ$%gZp)uEx*1(qtsWi`}AU;Zwc_?{N17ln{mt4oawVrCbjIxwjgRS|n zr-q&|x3ITbe}dZO`p>7q+2Cm8qjXfFpKVBcBl1MeqSQDZ>a}%Rs2y!}oIj{w3)@=g z%GK8481s*QkMz|Zqa0fETZ+)Qw}hh-<`6s(3)j-NMh&I^Y~u~B|McIt4*M5lC$YD# zdZJwaIiI$q|6KRl^;^TUzg+)~p+qS!mbo6vIU7{ub#JhC=K4>1SX0N5PJQ9p1-br< z+A1AlhO(T}1K0WMq5oWkJLbGAE!JRZ=rczrjM>hetAaZhCC0TK36DNcCH`ue?yLXw z-wyrfPQIc4Vvc~bh7EdDhyL?kcmto7qCLnN|9$me^rD1M-Q{cmaj>r=<;Er`xf~?K zTIWrqoC5z`r(CL)^q*@!OaW`Xlc)059Yb72VH{7De0OK<;6C) zhO5Sw^q;F_D^;!@;cn{H^-v4%0{7E$Kfwq-^@m+>D`AzA>%Xa#6qtvNTl>D;6N|q3&v7rM zEmpC}^`9%`D@UfT1m6t$=t|BE;tJ^;N}R{FYmm0Zl=!TAMJ$z3r*|LKSBc-$(^1;!WV@Y_JX>P0EAz{kWc*MBqdi^}!i z{PcdXpK6KTMDp}&rO{|!9J_1|1#nTz^Q zE`Y^t6S6^ z?kr^;)IUG;pDhb_=P{o8I&`3;Lyj<6TWvR4Q!-%ine#H;@xnQL=C8id6VB(x$)zw| z7Jr;krM1+v7CFBO>Hy`ojT~%&xb74yn1ZW# z#h1((E3V9?Uy=3E@oIM+vPEqwL;R-8;?FEN=ek3={+kRRlo@x{D8L=l%;(y@V%()7 z^q;mjgEN4XcX!@sqh_f8=B7A~RjdE>mvj7V7Iz(#B+Lz|#<&KJRxs^#&gL=N%;Q=g`jY-zO)T}_8CbMJ|D8grt>m1MVg_D!rxK%^84K>$to~a|4(h+N zc{Yy`#sxs4{yURrr$RaR>-n$hzthMo+5y${-`T`-JUZ8Z=W}1uf9GN?HMr7#p|BnJ ztbrx{w*y!!1y?OO0h+yp(Yjp!9ZLG|AUU}2L=$foLx)QkVck*Gf0tt=-N2I!3#RSA z%ZYUYw$@3M?J7U&zjLuKFK0Ae{ihG+`NZnN9;p61M*7R)Md-gH*rF@RpI>cfuZ8|| z-mKobZNN5-qYapytK_~k+LK-J$yyUT=_q4kQ#^fVqrDmWPY+b}pREP;pVs);pKAm$ z^`aO@x~V+(%Mc7*$b1OCJOgOIo+f|Xj z*AsIeR(|#0#ni{kfJFUwF*<2GbT|d5ckxdBcM7G+jeW$v6nRqrT|J@2;bp~^m{4Tt)iB_H0i&~m|1ao(ti&!u6{ezm`N?Y9?#)Nf%if@ zTzB%c2kM6YyOw+(BkhT-xN>S?x z68?w&dk(rhLH?H$C-mPplm2^wSfB2r|L#uu?=fZ^y#s8&N=~`{djxv^4f^i|c<}_Y zR0_;t`+i0G`88dH+>C_c%i+#!AlR7npZf{4AxVuqDe1q>saCref}>MSNVa-%5^-%= zxE9?~G+yYxSw;Of3ySOWvled7A!ZAD*}Y~qLwog~&qMRYZ#gC1wWS3rdDj2lJ%-eO z)~h8@?OgKS4vgx*vA#mzPt<=8G5bq7zANd!Z$j&LAPp}tkLnrbeTDw} z4l^XxfA_=VQLIp<{!>F-PAOkt&8ky4W+qRmYgkX{FM9Rg!xicGZKS=9b&$SHop_8f z(NB@;2k4RK_!z4HzF&AZv++XzeLd;FujBReC473y_1}Aev#$es(&$0;vCfgnWel`wrYag*gDrvdPS48uUdhT%E5P>E zP`9N2mazugxJe%X(1xBlLYY|a4-=geM@EWQG%vi{yY zMEyNBNd3KsG|wP2Zy^7V!J(+Xug9D29q6vtr}}$2^ETfNzptZ4ZG%ta@w&SM2p>)L z_pQKnCEinQ;Qn4}iF=RT2>lKt%db!M_jNq8{o?p{3#lsC-{sjZByJpBYGf7uQvDst z42&-o{sE|>{c;yN{AuFV7rss%crP{ktA)<&yQ%&z&)&y6Ue_`M)cV`a-6GbNpPEJe zU7AJx{Y0w2^+?0%X!E7nPYc_!F5qhef=clHYcGHQKJoXjp!T!y_g#JX`!?$D58>~t z6Muh#6#fL?!e^2fzz-6CKb!db&xybHQmeiQZGVIZ*JSGakHGRX)banB`1_yCIr(+r z?}7E-;7v9DuFg&)ep{w~{@0>@-VHK0WL>NbH<1}N_feBwhwju&{%*}q#rq7~Mwaup zJKKgQ-T1`$xXPaoeXdJs;@9-~c-hdYN^eaWsls+Vf;;UZFDBT^30uEcwFT{w zF(RiGRr|4HK|!tBa&RnLc(r$r;Cf`bt}U&tsDL^je+qlH_L^FQ7{{2dR=b#i6I87= zhdf^R0SHg+^wWMHBVLY)nL~`?<#|>+YqxV0RxUUS9`vsrf75Cy(>4|JY^8vfv)Y1V z*ILmX<%Z7NzzW4>`I&QMp* zwQ-({>nFR?y0#kaGA|~GhbvFH+IOwNxx$N}-gH_%j&-zhRCa0yUJ;)W`7eM#ggeN(MNH$>so`Bl|_sQO{dN0 zT0gDy9Jahj{;#1Ht)l*)G7SD-L91?i;{WN?|BGnhPo>Y>-)prpHY;gIO{HBN{J#wT zYd5Q%|EFTz*bdG2P;Zvdl62R?Wwga=4VTdak^k4yr+9Jv?}7h!(c0cmi#7QF`u`ID zAB6w3Nox$j|JT#%ehjUr{Qnv~Df$1gVe{Ahv-xjJz0`Aw{!36Ue;P4-miKG&G@kpXC_T$#M~qS~DbX-~Olf<}{QS#%7xt7& zrRCRV9I?F0{g8d)ovHI@zRz>ZQ^z@S^?mhVk0Fadd5#iu z`N_{huQx-KD;2{d)3o+3g;`jHQZ5ILz1R29Kg;uZt-&6%9$5BaqbIAET8^hr?F-n) zHeSRL+8mM`vq)j@)0okR_gAQWmX{Dda6YXqSgKgrzY=44V-GiA5`W7O3rjV&*c-=t zy&O#!X(Fzv?co?ZYPh|($VG1@sWBW5*NTUb>x&!n!t^k*{OEuCCcNjRvCqU=Jj7cl zy^?l%*(d|GhFIS~N{Dl433In>xn*zCU0k98OoUbby3Ve2)3Zl9kKl=rgnrSRN*emi z7}^NTt#*MLGBvFRjaBVp@FMb zhqwyQtJ>>_tLZy3W1jkQ+856CpAhR25W2>A`gaMJ914Fi^*>5w{oq3Xh3|TJYfE!&T+S)2 zOTXHyV$E4?K59{GzFuj+dHrXp%8!1edRyyP7Wz-WxUfFyuPvU=8+GqAJ?q>DQJvtG zw42CTAH7V(C8 z81>E-YF9pwJp-+CwFZ4A+eoYa(-P`_X0AmX`p>J-f9~j~wPOOY!oSx!w(1`7uqK!5 zKl2y`G~o;H9)+%X?YcZZt-XIWo*cxolagaEJZq);&pqWl^mA7l_1w{dB*op!FxpJ| z{8(4U6T>tuKrk8mR%pIhIbQpvJB4@h>x=`hYYpl@cQgq7=U$n5FX?}k>%U3B5_2K6 z5w_yDqs>xp|5l(?HuSa*{Ue&Uwj$-Vo)ssHq+4*e&8%k`gg)vcN3`p+5AonRT%%Jtt&N-$;z zxz!pPu+R<~L;Bqvt`Jmnr=CD!Wv~w(`R{EdRn{wTa1M|*MAFu z&h|yvGDP4exUOw-kKzgtngQS3QP!GvKKDZ#6t=#ooG%eAn~46#h7)pw_S&Zf+x&lKxvp z*{gtgBJisJmXlTJKRwXgw`L(wFQ#l)(NIzsfS+qs_@t3**Wq17YW1I9>^@se%x%b@ zUeg5GYmOHlQRM$ z$v`6+5l28pMQO95BB*ObZ4+ihMMX?)T(cP0Ro88^Yh=~cHS+#`=T^|Zyuw#hg{`!^1f9T0vvQjrVkT)Yu94sC<>uRr2!kN1uS<6j??;&{CEV(i~E z88mU^d6tzv0j`4O&Kl(SN`wgr0m_Kn@SX{8^d(I})K>l*XaZ)eTodUFhhDG*(Ah(f;u&Xp8fm zQEv-T?u%gm4h-$zG^E7XzrztSvVUt(4pm)@{W}LOnD68tgnDj{Tn2atmG+PCT_1~b zF!t|wCkfUR@5oKSd{jrYr`ceQ@Q(4xXu$zmDDB@YyoHv+TV)+^l}|`-aB;Z9<&w@z&#D_%+yoYvo$J&3!V`w-nd?AF+SOi2d6s z_U}s6-@Ri0Zb0mj{acLLL2du;K>1vT_87z4xp(3V-~)&{bBpJ6**f0AH%eNN1=VMKpan^uDITV+0I8`|M(X2a=gR57Ix%# zXu3vxdE5?mBmUivkd)!OuHDhX&P7ZsOYPrv$j76I>28F+9e;1E>g9oV5ii6Q%Qviz z{bR1*ENB1Li2dW6i$!QZbD%-#wxIyHxDoW|Z)GxIWH6+k6!H zEwg`@|3Uk=4JFbRZLb~j{#9uI?nat-z)IYOtMo=(hrLlAH>1@4j@jVpc#qZCzl|tq z5AE^2Qv3Heyg&OM?BA96PJ3kkPC=e%|IR}$X#XBUn2)Pmes`novj4~5CzRR0Z_t`9 zL`yjr*TdI{>twu3PWyKUX1I<0`yB7_(*9jvYXA7;K1QlvhyA-BZSfW4IEEZ- z!7m@7o8ZQ&dWN7@*k zTP{3f_RTih7bsz)bQn3tQPIK~jp!faiDq88Pbtoe8{M3Tpl%+U89?qwD|V~6nA9^i z&S7w2DmlABon`aKCIw6z=M*Yh%v>*HV7RjK;pnQF<2JLuoXs=&q>ktx_o<(`*!#k9 zFLKUTnYlHloby+VgJ(>-89UE1SDb}2rDoqS2nQrcLtc_#Ye`H3Gp*e5B z87-!Z`C(4X=q=|DSe7P79Jylux8n4hGNpc|hdD4lqfM(|OzcaU_p(h|IlIX5cFv!$ z+|4{KcJ{jDpf?oFYBPmgSQh*u7f0r~<;rIXrk%5+oSEawSq)QC75C>@@_ajiu`;d9 z59@-X?`%Wi`pl>H<~z2 z?ELBi%Z4*5jG^N6vmVWS8B@+DXwI&f`2;hY&Gya^oY6D07G_qIqbD4R=Xhhq*B8hB zm|uRGf?udG?`d<^(|nhRqw7qqY5&X}Ym{Zj-)@^@)<#7O+Y348EjTmC-~X8JRd6oL z%$>1rP5Wo*m@j2;wv@RwZK~?;i*rPiV^Qo)^P3l(kKjxi+ds!tIP1w)Ro4DFgU5H; z_rCDU{cQDS&Y9n{W&5XBE6#y%Hj-bIzO2LV*>En!lv&jN=?kL>gkQ+2XyJ^P`R*2H>^KJ)wSVfMJjZkS zb)MRYg6*HPUp}5nP5b9;N@eYzsp2>p=PmhlodS7Im|G{?W4$-!bPnKYdzo4x6osvyp87^+h-Hw)e%f zf6j~2#}(&V__jRTKRu2$MSOf?oxcz_^UrbYvtH^!TXV$CW6s!Bv@}9`_@S8@Q{b+_Kt{8N(oLW`d{ySl;r!~@2 zjQsY16n!nb(8%%QT;zrAzYnx=RJJXiB~AP9B<-RDbneUk^E)O35OaOR%=X^~M{S^| zKc3GUATGB5V#HL8v7?3UCf_$_6_eYvd`{#El z=%1JEzb)!KhExQo1AZl%Ux;pxV|squSNrEL+;i~U$!}hdMtsJfF#WUgyEsh|58Hod zXdi&1VORsyK|?2j9I^d#Jb83Q$=}QQsQnMXh@5HvJuz;`_TN8j|2?htKUCU(#lOcW zLMfZ}KNM# z(MTu10>lyB{V=M+xsHVxXKRJA+g`|S`{rGQaxYVKY!gZ2O}I& z`=49d{>P#gSA^~VP>j@!!zf)pNU>eallGseD0;L3)BdNSrA?Ife+*irx}i@Ler04NXisS9h>|)CwNr8XpMct{j`Xa8*syWMR63lM8} zj1;r|&y)6lI`UNYWgc>yhg7eZ_P+r2*ApY7IT+LHj}f9HaDDegi;3+2`O^N+s4)5^ zkU0qDQXMVu3~B!x(EjhhxlI`RW&6J!<-Aq3fBxd80mi%5VO;43j4Ez|d_{}h{;xuN zUW1XXC78)M5#tVbB9^l;CUrmB|5j=LXNv9Vg>kuFIKKsPSJwV_BBpkzvxBhhkI^vQ z{-42^aBch!`p(k!Pfxx*aOKhd??h>B1G#3O?SE^z_J1+T{wQ2eS0OL7|2w4ppO2b9 z17Cyq2l8Xu|GB7j)Bd+rR6H1cY>V6$qaELZ@!bn>rG14_$TyIePf@`X>9Mt?Lu z#8E7st%`IMzZoYo@9>*E@Tr$ERkko(S^7C<6s4cfp_MNjAK;sg=1Ja+z;XP>Jlj_; z&k+{p-=u@1VtjguMuIArH}7SeCouNE_{7bpNj{xby#%S>yz|Sk7RF}Y`Kw&N87HJh z>f@WPOcBT0Dt@N5W929gQ_bfXrhYwj+ zGu`ala#Vz)9DI(e>cX_L{^;Z9?-Lu(Kz!em_0M;DtD@i3KmC1j z)kx{{~_G^X*xVQSiIURjYrN7ropx5lN2R7*C*lU$$!X&o6JA`llyR zz9Y+Li6%H(mHNv=NK^lOf0p&nU-7g4oA2YPsjOUB|NPZGze2!w==feH-)`ft=_~G4 zmC2huQ~!KkZi*6M{d0Vw?eBx_<+zp9Kc8Ir7GVM8YM}&K|LhZ1z7*goo^SGXMqixo zUl-xXT>tISzpZ=;P*Qp5leI*7w?-W8knTTP|J@+lSL%O1#MD!savI^us_OOML0VgP z^g2!bbK4JTs(fiD_1{6p2k6T?s{eMV|6Y}gqtD3qE=Qu&hlce(4E?dz=%i?v4Nd(|K^^do zm|0b>|AA8flaXtFeX^;OK>Hhl(%`q{DqF^(l`anJe*mtTrFaWt1zP@8^t?w^CJgSv z(#}9z8H*BN{m(?Yb7Wh!`seqs_#W;8l>Kn4{uiVES64wl-}ah^dH$K0rRSSht?)#| z@4AgazrX7Be=2(NUC^JOk9T{{!(I|)c+nrK|I6|GWUl|kc#q_d)c?t0{qMxvPz!MV zv;G&M{&(QnqVnY|T>aOT*8fwGIStP`hgZ4&@5fix7UOx0*FV1-uoO>4@8YeXN8!8i zp32oD&1Z-8zY}kO+$QzE7TcF_{qx&sl`Ws3v`$9-e~9-r9z)5Wi!YDS{x8PU;h*(i zS?NX39A)8L?3(9^=$tv?dGn;AIcfBy!v1o3dCKul9%nPCw%`eJsv_MrBnd&)yb)gTx*zzu;u%u>5xXQT{m|-3s?*e#5RktS z*lo!F4bFWSV?0gO&se;#x&m(`^S$eP@b>5L^S=rCKUL-b3XDD5^>6b3e3<`-FrN5= zrT_oy{6{6lt=W&x;6#;{NRp#WCJtjos}_&Bt8h%pj7vp-d9SI;V#a3}(r7p1YTW<* zeQfWs@#)^AnpT>7w71As8euKFeS7nTfcV2T>X6|_hCcb53#yEKQ zV0d$XHSelbE^o@8`gk9tW{wT;ohRm{a(TWR#qkBEmiH!(5t>rqy_$8q?}hj6vUhv< zWX&%x@ckt-T2^`e@wfi0e~z-T#5mr^ZxC>#hReRM1M`Lt@7a9&h^5ajWHR6EGgQ7X zGUU{1bWn}Y~dR_{PKahepvt1%K1XZQF;0E_v7_&kK)@ed{*Qy$vHyC zkvjgZY+;|p{9c+p08{@QXW}p7eWb0jh5a4=`j27xl}g@)_`L$wN<+j^*}}JR_zn@< z4O3$3pYJaeNnDlHAHB`-H)^c^CddKnzX3{v_0N*1Oy1OgW5mL@Z&?5QEf{-He5ymUbBeZ*PWLf<=0(5GVk_dxwO!+qS;f2%6hKi@{_EcM?STT}l5dVG8% zV?WeuW%XAd?=SShn3|8?OB1Ake$h?+cS1@kum5%^anA4$M(qtoS+FPE6fyGsrKeV6AL1^}j!IQ5!wLu~PpBAuqF~{^wLCj#4VC|3#?(spuz~`k#qDXT|S@ zL=pGK+ZeyE|5@nqRlWX?mHHowo?#QnC8hrN$Mw(pp8z%cw*OK6pNRTD5i|dXAqTAg zByzSkO5{Gab@0Z(p%|rE64w88(n_0P9F9E?dhm|vfTYrw(m z`X8(Rt*HO4$mu$?8P@-7_+_b$ak{05XWvT`d=s-Z=Ix8|#(=5+6X5yb7|g-*`ro;4 zVNhNFM?&tou>K#x?~Kxw%J+r@e>b-Zso0E?ScUazssGJri>E_=-}ScvzdzcF+}>AO z|5xMs|Etvhja8`s8*#;L!S(+u#=}_u?_*qUGwMH!oc)42tZezervC4Coz$6OT|AFc ziJAr+5T%aTM=4zexf`&)4%xq9dn>kABYZ1tZ-VR&>~nh^w!B<-WB(wmOG8~aReo^+ zDIi`H#Bl;_r&rxElD=-rI%bJ#wQ^=j9KCB;N|B#SzdrElByf7aO-yCr;uRLa+8i(PhVv7M_iR(n{ zBOK#`GZPaQI#Tm-j&X9!mFG@2=S24j2>&k5g?ds4VxQ|Qvx;8CC$c9&4*D6Nlft&r zGDf)nR~G4&qXM~QJ)*~rzj$u)anAGj@ap2o?0G&O56I$m>eX-9sBx2~&6@8Qv~1O; zUHdR`k3je@$j{?gFUJ0p*gl2zGOW*Ft$}m3vA&6Hqs*O4ajqWL5s+tHjKVpTp_C`j zPr%9n1lGfLtZ1v!HW}u4gk{@By|c|SOlllf%21Z|zDf-lNZU;ChRkBd)ulcqqKFjW4SiMW2-Hr zhH%m4{7xgoKa6v1YfKkcw!vt>tS-D9FE=me_wu(x?^fvFhV7l$o{H@P$e)J&Gq8Us z_J6{<3_A8;{T}EGn z&@~qQqp+PAt~giK1#OUa1QE-nD@FyEFm4+j29CI}b^7MN3`R2SUKZpr^;evK2HR(` z@}ArY$GE>s-=rP3BXC@dbuw0V&9TZk9H)wK+z?x~1BO9(;fy2Vc6j!c7#?w^(7k2f zDRmrH$g5+X3%SG>9Y^|@CdR)Pc{_bf5A!2B5MLBml%G<0D?Ln~q>=iePu7|^R}1UD z7O4-^i-&)_mc-1nPH+#;@lhE$SiBrwxt=FiFRT{+`#JbuLBvNwe+k%1Y*%5s6l+K9 zvpp}zwjewnhkdR%R_Cg~_ZD7sgz=T`TgRp6D$r;1(*1p;uQbeF(o3dzE{?HEe$lE^ z;mUIrF1%jkCd7MOPPM$;YPqqz+*p2oUVcFV?!q;ySFc&KMvcP4nuSHRYSpS;yQnB$ zr*^zfUHo@k{6{VBZE1$q~lktEpW_!D%;MZI6nvLDD2Z-rmEwZZqvm9KVDuuhBQK z{vF3#u{{P`^e5TRax&P`-ad{kuW_u>=lmzO+p)ffbBGJC(mSd5vHjn+AkSRFP3bl| z!}B?@>g<%(soOB@mbY#rGWMVIkZ#@wZpHQzY%jx>`DWfWV`aX!U`sp2@|}q-%2ezq z_A$J|PuiLCJOx|Y0G>x3q!wda^(99-)(lTu6Q-Tl5bv>NgMCqkaSltW7TUyD*x8N! ze`7^I-)Vqz4YBfGcMewEzocKx`*vM$rf)vZqu;=Lxb#E{XmwJ^wloGmSsgb=9y)+2&u}|BKyhrsX`3J*rqPfqrUQfn)8jerL_9SePFDWCoedH_E729I0|7(i} zG2Cr(aN8-1Ak0_UiM{Q82Hl@y$f%h5c8sWqDM- zxVQ`Ma}k@d5kYQ1oY!F+m01GEup5|;H&gCBPdh{Va00gTu-)e(iYwL6F&AmS!?Ep- z2zjm9TV5MrYT+FotDO4~e?P%m4P}>$^%U$=ra#s}Sf?UB-uDi|x(q9>S-E#VkL@OK zv!L*?n7`&s__y>L!~H{^y_;a$8f$Z`Ef5FO3SIVA`fo?$+@WA*L27Z|i;nCq?K#R8 zLw+V61WGlmF@D(t=HP?6z5n!IG^G%%M@D~)8KJOtVyg`sGqAm(w3Ehfxr99zP{ugWrsmoDOX7c)6gF0 zSf)%@c+7H_@+a$pmFZx8P!G!;i_y&|Q1tk7qHz<$e*YKu*7>++&xCCn>P$c@#D_KU zcPiGIXq%(3PQ|svk1Ebg9fTYYFW1^7N_K7K@d7{lLB5fQP*cxT_Y_~pZ{pM{-L^@| zKRE}7Z#Y5-o@UbB8-^;$J*73Af|^J~WoYt?Ji zuu;Q$wd==g)QLB$-?>Y-;vPMF_3qQRU;hDv1`i!JJk-bx;lJ+})^Po5eqQyWntAy} zId$vSj>oFkt=^!1y*dT;>(y`7wq5%U9Xs(ZrWY0*%w-KXC#L|)DIbf~L;?!q^%^w` zT9)fFpD zUcE+M^}L#VVyT&rTr_CdxJhf83?>9+ke8R2k3coiJ1rL@%F0Lc!edX3>Ub59hFc0P zFNUX~>L{x2Jsl*ZUw>!Z^5qK`&s!c$3)(CwF!6Nl+HLuQlKFENFI+Kq(bDA$S9LpV z#gvst&Yv>B+lrMFM@|_rH#(j>d`$PbbJ{GJJFU&Cxx;46>d|#RzQs9W-ij4Rt`6p} zTsUv_!oX>@bjAGTM=w|y3|h5%!O|70yDk}m_a{qFE4FmUawE!h(as zfd~`gC{o1{5rfELg^S`rUc!_Q+-p2#9LcRfmnjdzZruXLws6&|VDZW$k1h$0UAlTn z&^;J2c@@(@{Z`T?IfH}tQMNh+ZAlPPOdBqj8yAW ztU@_x`JKK>bo|T}~8MwpM{c?LkWqK~hWRmL(9Xak8`=BUv^)gq(W>+u_{#$E;phvb5h^{OR7O zy%l9}(6U21h;UdBmVEb$<;&FXLmtVsk}z+ojZvWvo~j&yQc^>laY9;Mup=ap8q zWS5CMmOS+%-Buj`OX)6|H~(-ew=9Y1`tM#^+)8gpsZ#_jOMS`0l}8-CdSS0MeR{Fr z`t)jV3a)s~$bO8(PPSJO~iGxj5ltCH$NGK?WcEkssR$(wROWEEaIdujUR@=;ZJWFv?g zarx_yi7iWqZijY8Dyr2RVb|5 zc}eY3NMSYYci7Mwp^j^OWwLB_mPj%n@R=wD78Zs@Y1TUfJb#$Q8`AnSP_rvu_7MT zWJSERF87|k9+lK%kJ5UqK)#al8`L8zzzXCmDZd_-lwXfZ%CAQy<=3N<^6ODa`SmO< zKevfL5W{~mv^8bjPkYjAbg7^AaCrPnY@f!q-910;`4roE|N3bUhZ5f%@bjMb*j_y7 z=RISw4L1C|X9>0&vBhf!veY#j$31?UYmzx8!Mt8Hu$S(mbFSc7_!eo#BnBnd|rN z1=YeA;B?>Z74y@;r+)g=o)f3q@@u9>^4H_^*8V^5*}*)P#(%dP@h5P4^uV9@DnAnJ zL#*4*{dvzqY@OkSMdy2?3L9?lM->L=<%}w9e{Qw0g~ey&jxFqWYTl&6#PY&^!wQRs z6}BH<7z{6Li15P;`DIkc=?wjEBA#dnjnVzN{8<8jmcXAS@Mj79UtR)v2`PYVuGvPV z5#E-aXj>x$ORAZ0nD&z8wYtM(D}(XaE7~A;D@-MsB^GX@x%!47=lz#U#Q*c#9?l#) zmwE|q@as6UWc-BexBd5(mL zx&OeVmFuC&4>}N&$a~4S_ZM6*Uh94c@4LC}(O7-2TEFRtA*UJ!svSR8tqvyPy^9#E zc&-GCwM8)RBIxkCAH_3XUI7y6ebx(qdY;NNIeD3p*u?T4;Kt4E#)xCp3K13N=I*8Z zF^JKBZ9PNBaxTJ)0N#U0XU@5kaK@{P>BF4!xQjS8bi!2|%Z+WqVQ%aL{LSO8Hy$(M z)r!BxZfrDm-^~4fHR?J4XCy55htW9g@OT`wjEI z>yG_B+z$$d!`k3OB|K7bF0b0*n-DK z;UHHIrWEi8Ik|aqFsoqV5FF&Yw;_qif>+`=sP5i{gCzxgDKEFC%M_Os^g7A2m;khuM$?-S6c~a5+y&+bef&5MB zbwvlDF}d--$zk@S+KU$84bV?;1*#j(b-^Zi_MXqlJa$+2&B;Vg{6N$YY z&PVzGj`=@%kc2F#AC^=D92Q+a1LV{hLW&eQisbYXA@vpEFM9IMTrZ@lO+@e2I4^o@ zIz>a#!t&N{myj)^kmuvDs3ys|FA6DETaYW0LbfS#DaqBx3)!VeGhFL=*IXoIw@su4 z-i-56S|4UzZFyKi1`Wa*xD1C9^3^D0o>MfY4MN`Zsf0{NAs>%I{u+hMaf*7wH0RwC zhY`&8Gf~Jd8FCR?bvvAowD$`T^7cUzG8=_#fI|s6H3|vsehY-WW08am8iwf{7KJ<^ z3JL9p!|3GQxluwEMWBtkyEMM5T{kSF7?XdO&w z-jf+2DMjjy0{QD(Lee&o*uTbksmGyCQD54iXLHa`MvX@y|H;^od?w^7MGoi((lrOqE&2ZSiX4m3v2M+U+@i>D zsG?YLKOx%`!S@oJSodi{?p0)cLy#WJg*>Rpb12PN&ohKPrpV^@AidH;o>t@~=Ct=t zAunn|J$+si@|q$i3YNj3q_g@ z02w$#$Ty1k9YF?_2>Guf_n}u48@yh~Z;A{=Uo$r3dLcPY!d574XGb%Tp$`iwP-GUa z=~&`TAw`N*8xJz<8zJ=-nKlJvc#Rq?gQkjHLNcPQkd}&co&hp4A*8(`yO7Y>s5wHq zDsmJqt=Q<*LV78(3mxXzm<>V(DDpVY#m3$wB%w%*GUFZ-GFp+MIw0fU5i(Jc&KLuT zP555OG)3m_2Qsk;apwE86bWFHVv{-wIaHDU`-4m#DP(~nE75(6?SH6{Ws119L8hz` zQliL#O!d?YgdC&DQ!PQJ-6mwMBBvb)a==qUPEq6u+_+=YvqH{NpbcGcn2?kr57SC4Tx;|wQlB<-(Zxnj zb6d|fv~7#oM?>#ik@smsmpp6qC~`M#=+Y039z{N8PM7^=^z3Kr`IveRZ&)OH6uE#l zba@XUDMfym406OoAsI!!rVU-ONQe{IdS0guJ(53*M1BUBk+l?MY zUZf3O`J&O&!qzjb8_23pjUGi_q77Z`;d;#XQ;Hl(8+vq8AsI!Q(uN+>M~KtX*0Xd9 z$gxv|Box_7vSyjlqsR!_(Bn=sdK5X2sP=vuQ(5*kSZ2@+q$9*xFZ&9!1`Q zy^Edrh0&wPev~;W7rh6FX&v z(bLA(Gj)HEQ_nJb6j@IjdfK%{k0K3`li2AG8a;|EXR6P5!{}*i>v@+p^vvBxk0P6C zL(eLJB-()@?eOdrJG-@zj3R{?w1}-ABE)HD>p7RDbIvRw2}KT|4Lx_I(W6KU+R*dP zHF^{|p$Eu@Ek;j!TTg3Rr1LXIk4?mezK!$7ddgpXAMSeCyVwQ0C44Fh|0E8J&M5}D zumCy2mDnNFA>=sP(2H6NaXQ-M@u?tx86qU3$a%CZ7ta!s>SW8j&lF#>(&*u%JeEAs zb24q{rRN$wU2Jj#ZRllNj2=arcLljTWAt>jWjY@Ka>ZLlPdA(Fpl#dyozYWllOJhA zuPm&`GRP?MEN$pj?S-Ve+cLj0r&kXblIWob^`s9L;`Fr1&9tG{9Aoq-Qj^!gwHu9| zUbajw?csH|7(Kmh@&#?^^-mZ*eQYv;GB>jh?=?%ty4LH^%ErJLqSV zrL>_pbr$0Ex5>w}p*N2fl2POg+R$5)LQ(^4nVz(vw;pfw475p#mhv`^DZm;HvdNPq zw{JCi6qz#vWb4yHQiE-oPjC>s<9#8CAvU>&HgwxBLY$#C!S@E8*q!y!Qqc|+`8RFo zUByCD30tNQZRp+Og(QaAg!Un}eSr{XxJ?eGmAL05qeqeRX+!V5)aV&u%b*CH*nM{y zJtJ+hlx=6n^G44on_Np9djH2pk0RY@Lw9m+2v%>jEpsYU{Xkjh+cMIh;21(R+;^Mf&#w zd2E-_Gtrj0kT&%3&y1c)HW`F+i9L~nbfCRWwuso!{cv8aXEphY(VU%Z9e?d5;WJVA zd>j^CLmT?^WFf)+VN62Krwx5(iI9{cf2R$7_7ovmMXsY|d2X|i#1uQWADQCk?-i0( zqzT*S3%i6kQ*D_CX+vN9Oh{6Z*JveP%4saEU6J9mp}U$338vYxebNQw<$gj^iWKz) zd1acAtRnBxhQ7L7Na6rHwz`u*UOPibS`(x<_Ig@~Gu@WS(1yOTQ%F*gR=f`W_L`84 zB3o#4-uy~PaG)LAv7JEv9z%=6b)d*$13=ztDI}}NSlZCH2MI~cuw(m$HuRktLeh$) zXhZ)|BE*?#%lt|k`tEumNky)t4gDvt23R9S#xpQ?AU6z26^vIAt^=Pp$&ci z8zEUmKI;eaL5-%=lbCJCmZ5e1u&t1^BKOmVev}a6%&}z}@+$dwj*z4x!!eo{`((9{ zj3Se0LqFXhBsj>9js4l!zitweQsnK?AfG)ZB&*1cw4tBBBP4OK9orJx&@a9hl2+to zww*7FP#3TThuAVZX+yv2C?u)KXr}G!kwP+xTuvLh`%odlp>}MA7`cx9dySBkBG1!? zesh74tRk~}gM53Nki=X&wqEGV#J+nc|l2l|WZRihm zn@f9BQ+vPQyZqwte(Sact4 z=&u(DNgNjH5OM=;=x?_PNh|U-ZRnn-ggEmpnfU#*p^p2Wprk@YxD~`)_ZLAKg>K-L z;JFRZfb#udfgRziG^4)TLr_YgUR{B5+)0A63eBP+t>!Kflvrp-*pPR|T=!H#X@%O+ zl;*it333+MQmt8gG53B!NrgJmnC82$3Cd_hYg*ubEht!QNBFlvK-JxXfLTr{)Qq;V zhTBF^R-uPzfNHu4L5U@HgqKjN&^<^{TA|};Qfs-#2y&L%Qgdlji`-3uk_y!s3RK&@ zO;ARmD~RImUj+rr>N72@{cN;-C-%lzuk;b-z+e=VJq1R|_JG%P| z3Rc+>Uf~0Ea+e88DYTUKwzGS>psYfV)8KY-(}EJK?Fg6C;&yc(5R|r&nA|sT-gH>y zFC52w%ofw#{Xztsqr-YQVO-B+3n-55|mcxL7LsZ?gl{_g*a~&>*wAqD67zTn%(~H6M~#$?0l`D*&X2i zQ&6B#!{I;!-Jb*{6dFRaJIJlqM(SRn|FR1^*ew>6QfN5M?hto^ptM3kAE2S`B0(92 zzM|PpxF-wBD%6t(beOwYkaMh^uh(dvhP(F(3KZH(sS)lgf)WaCq}d(mekmxa&@nW- zquf|qW;vx$N7~lWZYx1)g)U)dc8ohjP)4CnG`nNn*@ChPJx8-U&Rs3YS!3sG4f8eL zJzr3u(7~vv*aY_$K?#KlXw)XUPYOyZ)R1O(lA9HjQs^t1-O29Hg3=28i)MF!w|+a8 zMn)mdaKxs#-34V8I%_1*RCl5v=QulGE7`A|<}MZ#D1?t=W9r5|MNmSaF=K$HyH^TI zD)cv+-2>enf>H`yO0zq|eN|9ep*v}IXS!br$|&@i2QpmqYqtM+xP}1e2C-SAx$uzt3++PGaC)oLVn`ZYgw?PL=1qz);vpe7IAt+%Z zF}ss+UJPz5GP}R9#Vm5?i$F3G=!?Vn2Q<5j-ID~R6?&OwcZqwMpsYeoXm*#n+XV${ z!*ol8*U;=Pb6*maRA>mz?&0odMwddb((EpGtHB1Kj1+PUfR1njLBWZ(t|ZOw3U{EO zq(Z0B>>laP5R_JEKFw~4dz7H8LI=|99_5~Ebe&}Ds)ba?R=PJDT?);n*KNAI1Y6>vk2CR_IAet#K)gGF0eB zn%(2v1%iT6O>eF7|rep?&X5g3T>s?UF+UsbSX5PX7@yQm(g{yt?T_f zpp)FsjV^`GXTH|CxoC6f`YFWQbS&kz5R_G@1$rO+5!le^q8f_5vkm=^hN_b@?4=h*p*O$XZUo+zkTp-WjB_qdk|nxatC2|)L{ zcMB>}s5Wc)KKDgI8x;xypdIeN1Z`93{joszyE#3WC z5L9%oov$Bxr+LslP*AZ#$MGKjkXs^XibB_;R~mcRJx5T9LQm7SKH_c>v{9j-SsEGl zQ9;`j`ka@;qwYI`b}7_@t@kna2SK|PTHGG!aW{_2&i9MXv-8!J4d4m4i=bkKt|$U} z(j6;kib9|9M*fsLUr>ocb(#VF)jdhjMukpAMa7<} z?Cx?ogp3EtNT3Z4;|&XdUUruY3eFExAn03~-B;W*1!WX^c^c5G?zMuF8*QnvG`p|4 z4+(NM*=Re>?(6QGg3=0&WV3j~{Z>%o0$b`G-aP;27UFJ*PMkuUX?EXqI|xc$XiMd= z)BSgMq@ds;8_nhg`Ib9ZP)4D3Q-R)gj~A5ui!DXF7<8~uv@O6(u*HbH5H z*6<2{*L_Y<;u2eG2hHw3-H!!j6*`R#H|x3>p+J3IYD>*!rM%}h6%<@%qY2f4-go)p zG#-!@`i^Gz19zIB4zSISrJ34#*W*itcGt6#ep3(6`qpO$O4d#9k(wYJn^ zw)ua%&kG8!v(arh7yHKjL{LVd*O}#ST@TNI`F`?xTk7xwfxdH_336_*QQe6^|8e^X zN-NZpm&5liUnALwWIEkVhfZK=*QyT7>q5#-!rqn$Lnzq&=}!r)0rp*jc``_1hnC~>PT zmB(7%%0Of`Z#^bOX(<=UpNwVS9n{my`ZE*wP}Oec_Rd+6&lVvO?&T9 zL0N_FA?n~AXLQ|X>uQkz>gZi$bSdPU1zia>ftRH zlvLyj zJ{m==pI3+;JKDUB#O!v!dDG98zjd5=d$yPX-cS(;9tcywiRySQ-bn^}a|C4+x}Iit zkax78BnsALk* zFz**ZsYh%npVnl!*8pt_S3<@{YgttzydHuw3dLz?MtYM3B_Fk=&Y-SQ-V#C1V>a?e z1C91h6_i%!UE0<$-c^DUkK0nsiN<>O3(6{VEY0pX?=?ZGCv2%UG`r)yuLT89+Grfj z?gXy@=g{?2s1?obM6ZpYePAy6Vr^QpeL2PV=Y)_4TZcPN&&DzK$H{hk3^e3SP5OYnt8p z-UWg(3N@kGUEtj=DEYcA^>TBdh2GPGoHuNARSTd+-Uoux3hm~#yx99qP~va4R6m;C zC0-*8uEP{6bT@6(Qm>bw)SI@{7@FN>-u{AuzuV|ln%%>_Wr8vaHKEyE?wu|u`IaRm zW;c!VVsLZhZ_J4gVT)Pe@iPu+oo|N%>v0%wL$iCN_p*sgp`A3lCEgc;G78mW!#&E& z8^s8NckBqCqS;;PwG@<6XbsKoDsQl$tU^UofL4361SS4qM>vWFakRHeP+FnJv?j-R z8w5G;+EN#`0Xo*ZSx{1;C-`u;#(P3gMxnbW0UhW4Q&8|vJHkdZyT^M!2}&vSAKKOv zym|u+-(OR!qP$FwbxPfN(L~nwiv_gYuc2Dva33A@ErQXJvL~NaRvY@0w19E{< z-ey4=h32xLPWJ8-6wtO|$&&`Kf@b#=?-fBQh3=)XL+g0c#&qS-yy%L+<-Y)9C?JHG zUF7W$l=zn&VI0?Y>@VJ{g3=0ohrGrv_P!G2d}d1x!nxQbUOrk+zMoX6C(Z7qUTZ-a zh5kjedzm*>Q1H1O;k_+@F8AgLN+}d;3v`8dw4kg)Q;0Tu8wDl4up|7kBhZ!Jt%A}D z&8-G>mG_h&=Sy4ab6T6Lz4rtq73xW|oA!PYl(CVR-3H@Bvul3$;5qT>G`rV&T>xMu zzY5j3IE)XZ*}cviD=4WDKTHz4-kUEdtxzX6+#9@;1Z5R^hh}$+cbTBzYg^X_n%x_{ z?M9bEZE1FI@?J8!6uOe8@MiBbqf4R9O@VIls=+)UU%PExx3mGe)e8hA70PW7belI& zP+FlZb=~gG5R_GjmNT~1JId(#x2$;m}_W^I0(WTG| zmd1nL=SG)853#rVke7>U!wpZNFRKGR?6nXS{KwX{xeL%E-XK9qh1S#TX1tk#(h5ys zvw758DJZMZ>omKMdHiY_+Tr)Mt{F7Dk9#*6T?(B^+xmp}xY4E1uS8FJ?;2eSU0WOI zDep(4>jzucaGKq}dUa8h`F>KNJ85>G_PPm5E7Xx@_Ze@zpsYf7^ZI($TPP^_udQo3 z&F*tv%IH#P0?qF8-W5idLhgP*FL?JFT?)O}0_a8WWuxmyTi0R?bH-lszA(BJT0*nC z%gfte+Pp&5Isv`xwG@<9=vZ2|SG>W3f}d<%KAX*}-Yh{$g(lGKzUHkmx)fSg3+N4R zgP?4LnCr4@P>O)2&dZ-StVLeH@Qyz4CzlvU_a8rXk&Ckt|ZvGer< z`?Xnbv!FmD>Uz(+Pf$Xk=`^tKd#?yeDzuw+;{)$YK`DiLb^!X&i%pdVpwMq@*dKYV z1Z5O@mL}z6Z-}6*LiseypLnwcIef&%k|*`Gga-CgZ?&L6q4Q{9|K*)8D520*xJ}1C z^KKE8ROmw**w4Ku1*H^vurAOSURF?Ap*v_`zw~|9P3+gMcKH357p+e8%>WO{r zbrHGsbHP7#z;=x(;&Z@nu8r4+h`2KGB| zhoH1VPYeh8kN2vej6z=oK;L^`3Cb#TL=n&rUOui0bb0sK`MQc$^uJzfL4iW`4g~tq z8!9NF(9YUGKY4QmB^8=O1N*agw4jti&m@3;@iq!dD>R$!@K^6vK^cYK=k@iQ$46Dv zmqN>FVE1_M35wj0ns)dQYuWLC5fp^J8Vzbh1MB(?kaIi^DfDp*AkXh1D5=o?Xi72P zpCl-yP>KdN$6q2St!zxHdKmw^QHsu+G4aRcpmfnN=kiQGm4e@D3ZHg>$K`+=a8LhE=Vui+0Alu_tW z-f3$3GXyzam^g{>qPjqZ{!vDkLbvfssO6t)bSZQqE4awN(dbgBbvK~e{$oa$Z|mya z87S`m!{}0I4o1IYb^QMtT?&1Qt0Pv|uQP+Ckx}RcUL^JWu7aE#Ti0(rfa?3>1SJ%z z-xH{Tzd%q*p^Fejtf9Zo=u)U|6QD-^S6>)?+Ux*n0Z21f>*O(F&-Szsl%R==zR8z5NYFR}EWN z2^)4F|7N30p(A&;vSz`{Gfl@mCeJ;?EX-Gi9@ zl1SiF3ao)ZH=Gv@W;nXG6Yoe3ll@U5kd6cz;ZQUr%L$xG4g34Yh(J&j=3zVqs9{qi z5PfkXK7Jqs4)AXjfm9@L0tJ|d$I1y@M-9{cH$@;(JJfI+1*qZMNFe$>c6`}D2+Z>H z50(ot68HxNsG&8^OQuT&9-)TW{s0jO;-Q8@9EyemwE#wsy0T6W@(&k*WF#<@0@QFu zIe{y3A#kw2Sp+hXKnVqyhx;OdJV_YtFu3G~OI zq$^cU;9HjMQvYHR*c}Nh!(p5c(Xqq*I|T)G!z44VI6rqATkbzEs3by^l5~B79Z6T| zEAnUaiY@Vf6@hdl@G=EhUJVcZy#Rld8#~JH3XtzV9SL|ij6c&0Xq7)sP&Pu0EB+k~ z-fDk=pjf>y$&`|Gt;3F_tMnbxS9xPydF8hU5IFL?Br|)NnZt zF+piG1qSG;{|ptb%lf*ekDV#yP!4|%&i$!{>18BIn=q%LU$w9fA#DBZ}C zlH5$fdC5)bt66=TLf}+?z6dytLxH|Hl-!(DPGAK)52yJTiNKUdUB9M**I^$3@tkMFgjDrdwaGrm*2xKCGLny#JTwhLLT0IDC z@OO&9u1H`51(=7|BZ1OM!x|$Xu*v^i1hSF9BNU*9+<9T9O9i&DlrHd_0$?DtS(xeF z6rhH_S|HbnKgUwK$e$zv*+`%T4n@O~asqo;N`LWB5`k3nP{T9|P{U=BKB z+`mHvGLgWk6kr~nEhq4p3xO;AtOykC7i!p!!}#Y+?Unw|f)Wv8T=6D3Kv((o4`a?Z zMu<|9uI@N5ZQP^_miGkKUfLfc0+~pl2@WM)hm{jp!P>jVUn2s$BY}xHjL&5rulFw$ zKPb@ettH~P;AN=8Ve`Z6~+`5y{OM@XcuV7hPd_Xx^F zNTk*?g}3^R=d%o)7Q;<4O09fvoVTng%7D{Uv910D5eOoI{ctE{u&A8C5e*@5hrdP@t#$te|%y#3`xxtCV`$|5?!P2#M5PlzPUmzmP>xqji`Wk$Rn_^PJyZ zP!J)J8aoW=d4HmyK@p;qG=Rl8FDWkV0Cye%fmi$!MPPg+FcpXK(L}HLmkOE^A@)Jz zNuoFWy9K2p#Li>J`ez3u`eHox_q*oFNMoijPcIZhERk#UZ*36Iddu>Ri5&j)Kb%c;ycPEG9`r>=62Q(rm9X};UD zoa5~GksO82aRSRZPUsLvoZ}2+-^tq)I>#AojzZ@+L)cCFA99Y9=>h|TrE=#uyQ7em zI>(814dX259H+J-wsV}uigbq2ik#!LvWeV;p2;b_(JSXT#ZgG!V3l*6DT>(6aY}3= zu~+0AXMGg1oO7IwirCI^E>^^Yy^WmXY_^H$t;jjfwNXgkgq3rgZHm~=aUQmb#9one zoLy1Ka?WvfD`GpxDdMe6+6+@!n_Hwo#O;H*{5@yL=>`| zbDWeSwsV|}O{D9-Z|68p&oG_koa5vwGKupIp>v!XirCI^;)>YLaT+ROJI86Ri0vGw zwIa52oQ{gv&T)zrv7O`eQN(tRGe{BJInHoJZ09&*6|tS;OxA=?ouPA_>5ACSapovu zJI6^XVmrrKq=@YtXSpJ_bDWim*v@g*C}KOuIY|-QInHT{*v@g*D`Gpx*{F!^9Oq(1 zZ09(e6|tS;T&sxf9OouQcHu4^Img+m$Wbwn&^gX_MQrCdI~B2=<75=Eo#Q;Ei0vHb zc|~mJIIk#TJI8rbkpTC!$T`ltirCI^K2&6-2bs`0&S#3)&T)1tVmrtAUXiC-BDT;u z&M%7C&T+h6wsofba&T&$T*v@e>irCI^oZexXNo=-roP;8_bDWeSwsV|}BDQlJr;n}2c8-%!#CDF8 zQp9$SlTpNWj^p&T_1MmF5{lT)aZ;MlhK9~@GK$#Fah!g(9@{xiLJ`|JPD&BmIZj3q z{`fj_j^p&V^)&7X5<168C}KOuNhxAG$H^#SJI8Sb*m{oSTLPhToP;8_bDWeSwsV|} zBDQlJXP~Xec8-%!#CDF8Qp9$SlTpNWj^hln_1MmF5{lT)aZ-xd&T%q|*v@gB!L}aT zIZi^6ezc*XbDWeSwsV|}BI`ZKgwAoCA+{ddIZi?m+c{23k#}1nw$M3FMiJXNjx*HO zV>`!5C{oA)*3dalN)g*RPDYUfe8_~(ah!y$$99gBP~?OjkO`gRq!el003>vdld*}| z(0x0{afXH3%Q?r%C}KOuNe#DUZ09(M5jL@%<2WO2VmrslC}KOuNsY2)Z09(M(KfN2 z<2Yk%VmrslC}KOuNsYB-Z09%$j=N$pj(cq9IL>&R*v@e>n$U)Z&T&!`Y#G}*PGX`> zZ09)6B%9dIaWab7&T&$cZ5i7+PGWzX*v@gBDK@d4<75=Eo#UjY+A_9toWwMn*v@gB z18ibD$H^#SJI6^)w`FYSIEe#oVmrriX4r(k(u$npWE8QT&+9LG7>CU~{G)HzN@5!*RV>JVGzS`RXz zbDYGXHnE-KICE`cJIBc=@_kFh7COgCC2bkoIZk4pO>E~l&S5sOo#SK_v7O_j=G!ud z(}sr5aS{t`Vmrri7TUyij+0Tuc8-%;WXXsP-M4d`#Nse~Ip;WOMQrCd&JtV3c8-%& z#CDF8QN(tR6D+l3vz_Cl6tSJ-WEFXhJ+06=PGXrIo9!GYt%&U$$2r`Vv7O^26?v~c z^n}iFGK$#Faf0P`Y<2lAO6VLXrHJhuC##6<94B#v9h>bOC#{I>9LHH<%h=9wl8V^Q zaWab7&T)bx?bvMRI4MPJ=QvqKZ09(M5<52AIZj#;+c}PNlr3XB$4M$;JIBc=VmrqP zR@$-I&T&$T*v@gXirCI^607XkZ09&>MQrCd&T3ocZOptx&T*28*v@e>iY%cG4V~iz zN87R4&T&$T?DQZLI>*T>Vmrr49An33JI6^YVmrrij`q!m2;f5LdrRgbD}M!oZ}=FQqFNQ3MuC}!AW+6$~jI-A>|w= ztB`VzlUQd**ooFOa*mT$NIA!GQnr+Gj+0bKImgK;q@3dfC)*J!=Qt^alyjV{LdrQ# z;uJeVJq zk#n51LdrRgbA~OYoZ}=FQqFNQ3MuC}!I^f1$~jI-A>|w=t5AwYHgb-WILnSuImbyW z^oj?m$T^O4wk@Tc<0KVQ&T%pdDd#xBdOJep94Doaa*mT#NIAzzoMT6*oa3YwQqFOl zb8RW*94D!ea*mTxNIAy|&a)yElUs>%oKz$rzt>dGancGY=QtUKlyjV{LdrRgvms2J z=u*yc0)>=woPOIBA8HbDWGq$~jI}A>|y$*<|NSImZbUQqFM_3MuC}NrlcD zi7ZFXaZ(B?=QwGF9KJ~yImgK;q@3eq6;jS|oD1xHT}rbXImZbUQqFM_3Vr55DsqmK zR7g3;Nhze9|w= zt&nn#lT}DL#|bXAbt&gKNrjYioU}s9IZjp~|xrw?fJ}PSG`Cx_QqFOT6;jS|rYNMG|yWL?PuIXQM(nEfHbl z9A}$C$~n$18;RMi#5s<0W0Pq!m)maT2%NQp!0_R-vS%nUy*^Qjzr0%w*X3*?L z&T)e6Hd4-UG72f@ILUi#Ddil;xz|R@IZj$38a*pFXU?b%mC#{fjj+1!MmQv1fvI;5ZIH`whDdij|c-ThD zIZj3))u%(o99Op?J{Xguz3Ai0qmA_s0-V8SkF@!;8icv%%10f_bSj;no zK?NLAKoW>Ra?OA^7vg}57!+GtZ7Bzwhd2+=TH0#k92L~I9m-Z5L8I-|DEi-3wbr@o zUHcsF{kro!&DRgRXyb8hx~@jjuK%5h3WkmF>ZH@(`+?gVn2T06vY zob+F%RvST%lOuv0r$hufPK^k1ob(Pm7UVcNBFJ${M3Cduh#<#FzhK9L94AKvIZlZP za-13wC$4S3r$ATOuM+7-ei3oC>8WH3;>6h(T zkmKZt_Sh#(UgbC?BFJ%SM3Cd8U$J9Bj*}yT9H&GCIZllTa-8(5b}Yzoazv2hl!!Jo z&v2FF)QBL*Nxx>tf*dDD1UXKLXzwhHrE;7a(S6O!q{?y9O?Ir6O)r(>LC;hq|3v!$s5#%@}q8IHQW~g$U8WH3;={M|HkmKZtAjc^Y%?bbZuqVf<5#82o zh@oKTwU^xqk$DnyXur2l0LLXJ}) zf*hwt1UXK2pDhSEPKgL|oa8UI7vwlOBFJ$nM5pZ&9%Yr|q<^&qA;&2YL5@=+f*dEi z-xh=%r$hufPVzU~3v!$s(c0z{MwR1Kh#<#F|85I@vbpT49H&48IZllTa-1wVE@^&s z#v;gZNLBk$EguPj+0F@1>4K+1ah2G zJH&FF8d0+`Nl%WGPM2ZYUXbJDh#{yWF%bF{)%5l=!b}Yzoazv2hl!ze5sS!br zlWuRvf*dE;sQsx~$Z-lpkmHnyj%jw%R5?zC2y&bn5#%_@4l=`b8j$0ph#<$w5J8TU zBZ3^KKm<8X$*B2RTb1Kfh#<$Q5kZcV>}Zb*a-0;=-|~GY_U5N|RF0D(dS7#aRXI+E2y&bp5#%@pBFJ${M3CcDh#<$Q z5kZcVJlq}^}SVXwQuO9a-0kiA`X!la=F~tQ}%GPOecb$GJ|U$;xp`?J!w6PJM_RNG!+6=13IF zaf-RN7vwm#MzI_xoo{-z*PjXGIE8kYtQ=>Pc9^UjCplE6G+8-Lwm>>eR*q9@hsnxu z(!*qg$;xpu?J!w6&Jyi#LoRziPawz1wZmlPIO#$;hDOQIKGGA&adPc2SvgK}xQsAa zIZmb>CM(C;pdDg4PNh*S$C$TR zQG4Zu9H-K#y(Z<*{mIwgm#qUq>nkSx#>x!H?=6o8Pllk1vyTsQQHf0oXr|Fz1sK0_lG~U z50IDRq({iu_cmigj+1ND?59sTPN7lT3v!%Fqqf%tp=(c$Q)|@rf*dD3Ql`=LYG*u9 zj+1HASdQ}~jhe5dD90JoD3;?~uTk3za-345SdMeMMoq8w1eidM^F{3t%W*bo6w7gv zqhw)XIZm!oEXOG|isd+)G-{t8cZBLaIZmxnEXVnsMzI_xIa+2I%W;-y6w7f6jbb@Y ztx+t;ne|v1E0*KT)u=r#$Z;}_ny14ge-=5;k=@@!j&oG_EPqSMak3NTYIE;MxWqTZJR-b0b@w^RtXsmq z9@DQlGLT@{)s_>=ajw&rksRknBvy{|S|nDE^Jbg0FG7RlI2*NP^8yPw&L$*p**6^3 zb7qIvv>79tZPHdBB*)q6Bw49Qjx!61mE-J$#L97Yw@EwhAUV!H+Ol~Oh8$-u5-Z0! z+9qxFL2{fW+A@;kj3KddoDE2<9A_gEE63S{#L96t+oU}M2gz~LljRYZP>xe-%L(N; zmA0Hvj#F#P3FSEHDKgIqO7w_CaFhI0quJa-2huSUJuDBvy{|7$jDX zlOeHkoD-2)InL=wtQ_YYBvy`dK9V%t{iq!0DM+jwXBm<;&3h=3<2)6KmE(*dv2vWN zkbHihP)+1G&qiY9IL}97ZaVl*e$#If1j#DAAa-8IB zJC2p(WJs(Wr$A!mI295r$4Sny<5)RPhQ!Ko3M5vJQz5Z(oa9_Pj+NtNNUR*EKw{-M z6%s4QNzSw5SUFCH#L96BBvy`7A+d6t|6xu$L<75}g7;R$ZILQ-jV&ym$ z5-Z0ko@D!2IZpOun^-wc@)Vm`IZlPd%5jRNwvUzLWVubO94EQRCRUD9A+d6t;$qv! z%5kzwkTlm&k>e!GY+~g&6%s4QDVEzlR*sXcu!)u9B$wL6%5f?rR*q9#X8Twr$S=oIO$7l zH7my{kXSiRjl{}vvX|OwR*q95v2vW`Wwwu%wac3OP?6)5NUR(uxxx1NL~{)lIZlqm%5f?rR*sXt!d9EPZ>aX$tHZxto-tA& zv2vUmiIwAI8*DWz$0?CmIZkq;?Q`u&n86?KYiE!nv2vUWiIwA|ue8;y9H+2JdkuYH zIZmzZBRNj?DjB0qtQ@CAV&yo=O{Nd!I5{H7aVkWR)1tG^N5J8SpBZ3?!`v+SP za-0$oK+kmFQ{Aje5xXA44(Qy_vIr$z)hPWF0R5OSOn5#%_@KiOW8=s)Pa-0$oftuRpgMg8>l_n~C=Pn!+q=MCM{ z&LDZK)T+W?XG4yYB7z(zLj*ZajtFv`0ukgmB_haiDnyXu)QC>Ca-8IC_P8L&NfGUQ zY*>vWhVI+1c|0;ikmKZtAjc^XL5@=*f*hwp1UXKP2y&d{?e@4J$4L=Ej*}sR94AKv zIZlBHa-0$o8WH3;=|(#icvl$WOIJ0iI#|1gg zTttxLEI|Z0&KM%daW)`I)36#U$JvMoa-2rd_P8L& znTrT=oF#}L#~DKeInD+|kmGDb1Ub$oM3CcbMg%#|tWVnGf*fZqBFJ%;Ac7oc3=!lw z8xTQ`vk}pcvhbj&9A^_E$Z<9!f*fbor|fY}*(VfKInG=}kmD?|QG3~)K#o&rhggo2 zRx*P&f*hwp1UXLrY1<2Ooa8e$f*hwr1UXLjFSghB_6-a1?V*{6HK%)x2y&d_v$hxH zIO*qX1UXKH2y&eK^R^e{ILW`-2y&bf5#%`89kv(bI5i^3af&b4UXbIYU$hbAI2EF1 zXW^b4C;yV|1vyUgWg9_`QzC*KC;N)+1vyTQ2y&d_tF{;9IO*4H1UXKH2y&c!lkEjL zPV#jdUC>;1?-e;ti3oC>>>IWhZ7$mE+WiAjc`bZ+k(Glm5U)kmFP~YA?GJ$Z_%?O08IqQzC*Kr$z)hPFmZ7kmKZt zAjc^YL5@=+f*dFPksS+ioE#D4I3*&;acV@68WH3;>5uJL zGs90p_T)G@BFJ${M3Cduh#<#Fe`3di94AKvIZlZPa-15`9?kuN%5l=W?O2fGLC;h1%3v!$s5#%@}BFJ%SM3Cd8KeJ;&j*}yT9H&GCIZllTa-8(%cC5Xd z`#Y86?%1GyV%Z7UVcNBFJ${M3Cduh#<#Fe`&{p94AKv zIZlZPa-13w{xTczlQ9|adJeEg$Qz-{9fA& za-8JXHi8_dL^tU#G9H&AAIZpmN+Y54>3v%Mh4sS!brQ~cfbdRud2 zrE;7!IX-EAO>duHkmFQ{AjipvY%j=hl3^P`j#DCn948yGy{^f^3{{R(BWfO@(Tj$k z6#f&w@t9H&48IZllTa-3{CTM%-b5)tG$NnA8I0YieacV@6<77M7f{^2sh#<#FcC@`9$H@^vj#D9m94Fn$ z7K9w9Km<8XjRC$4L*gV?mCSBYJ;xu~s=wiRhqEV)P5cr=Hm!7b3`U(ns2{AjioOL5@=*f*hwt z1UXLHOe*}E-d>|1$H@_0)?ATQj#DCn9H&MEIZpa0I~L?PIU>k$N<@(3)EZU$hM&-d z94C3SjMYYvuj*}yT9H&48IZlZPa-0egIZlcQa-0kiScYNO6Ai3@;Etj#D9m949%#js-bRh6r+;0ukgm6(Y!Sk|XU{_hn)7D#ytX zL5@=(S`}{RdUBi!5#%_@QFbiIaWX`Z;}nP>$EgrOj*}d1$ATOuLj*Zafe3P(%0}(B zofF7$ey$y2InM79HTUzQCyspJ!sd)g9xL;1dbPt$Aje6y!(`<+W7=V|a-32-OjeGQ z9wWyvSvgLj9VRQs$&Qr~CM(A&w8LcOIO%aR!er$*xptVW9H-I_la=Gt+M!V$w42;c zAje6Mmt$zRPhU4BoMxAd?DFL1G|MzH<$8KqqZ01IF&|iFUWC{b7UI5tNdY?JfIvW)ed`wcI~Uril_tRIAhvjNoYqo zPN`8-i*lUJ8nwM3$4SqXDYv~K#~IV8>D9g`zF#NjYH@h%?Zsc&qjjx4n+ksOi<7029b@PSp;v9A}9}u^gw+D3;^Y8pU#)^zm{?u^eZKM(y+Cj^n~1 z{a|FT70p8A8pU#)H5$cooI;~mj*9AcpvgfC>5GBdShT8umFWoa} zI7X-677k>1X!L+^jt&n`-|ErfKU1bxEu3~>3#TqRFG)tGOkKHZUFa}%`_tNfH$1B8 zH*HR6GUcWz;m`AeEH;_CRTyn(t1w(N-q7p66zH@Ilc8;zKaAX1Ja78>pUJ`>ljP~` z?;%~849#ph58rr2IDoa`Pcy>lnuLGfwacZ=alK>wxaP}oed{w>Xptl;{n;jLIW+w0 z-NSGDEed#Ks6C94;r1}5bcZn_hjCNWZ0^#wS+@k;p**c2vKqf!5ZWAiZ9}?+8R-@+ z6mAYal$seZBpWgg&_|(OL&;8Hv$I%nRAHOs0kL!lRGW;d1@w7jk7;rM< zr0}0A+L(-q5{68uEd06xO+S;G+^=*rnf1a(<@40p;W-fA?XCz{r|@g~y`e$d@)3cz^`<)MkG6bxXwbgM zovkfH&4W)5HO5v1GGpXAZFx-i>#XA!hGb3ACO0C1^alx~KQ?K{{eq6WOET+6yN2q| z_(5BJqqb~r94P%k@|Jx=AC>;tq^&+s`g7^=-AcvMA0&|eAc6G9ChfQbr9axTxw)Y9 z2MMGTVTSo(tm(jO#{{vd($2MMGCfeI)Uou( zChc3238X*TK9>FC9O(jO#{{vd($2MMG`>gXC%9Dl&TFx^0?k$pR#h{vd($2MMGC9O(jO#{{;aa&K>C9O(jO#{{vd($XSE#%(jO#{{vd($2MMG< zV|E-!e~>`>g9OqaB#{0*&5i@<4-!a!kU;u_1k#^1b{t55kU;u_1kxWQkp8T-<3Rd@ z1kxWQkp3Wn^kAbI z1k#^tYy#;I5=eiZZ~H*{b1jnQK2)VYFR%%uKS&_`d7CcO70_o3-Z35{J5=eip zvwa}_d5KLR{duWPApJoC>Cek-A4q?$w+W;_FSiM#KS&_`xxw~<^yd{ef%IpCO(6Y2 z0_o3G7$TMg15B#{0f zf%NAswi={AOm+#6^j&5695;OKbgS(H=?@Y}e~>`>^Hy68(jO#{{vd($=WVtcq(4X? z{dv3X1L+SENPmz(`tuH3ZM*%#y8Y-oyEW@pAc6D;38X*owACQ}K?3Q|yKEmwe~=s- znvMQ!UHJMgd`FK2(w}$RYLNaQf%FFnq(ASm)h=tUp(_1B0_o3tZ68Q~kU;u_1k#`P z*=jSxC)Yjc4-!a!kU;vg(N=@>2MMG<@3(!fZLXmz{Xqih4-!a!K47as`eT#!8ajdW zN888JpAX6yvGfNCq(2`reVp_M5v4zfDE;}cElBAPB1(S{QTp={TaeNpM3nw~)b`r1 zdGvbHA4HV?Flw%*TMadPS2uex+k%w-AfogK5v4yLw*@KvK}6}#Cu}cDe-KgngNV|f z+iXEfe-KgngNV|f+ik%U_6uvc)6k)NH)~iTqV(sVZ7)iH5K;Pr=Q*1^al~8KcBS)U)MZgd(t07l>Q*1^yhQ7Af-Px zYA?Cp3Wwc(Q9nTX^LeS&{<~pHe-KgngNV`}M3nv@qVxw5r9X%${XsXddkBibDM3nv@qVxw5r9X%${XsXfC@MB1(S{QTl_3(jP>W{ve|C2hnxmNJh^dI{gvN43jU~ zT~%DE&c1=?@}G ze-Kgn^L0BGr9X%${XsAfogK5v4zO*|C~8PNOd!nsaco8abkk z&1LsxL#MV;iHOo4M8nPHsVDvUmK}@IA4HV?AbNar+3iVx5K;Q`Z95jFKZq#(K}6{f zqAxYa)sy~w$Bsqm4W z{ve|C=ezc}DE&c1=?@}Ge-KgngNV`}M3nv@qVxw5r9b~}kBibDM3nv@qVxw5r9X%$ z{XsW{ve|C=ZE&VDE&c1>5q-t%kD(dAMMab`cumc z`bd8eQTp>E+l$hl|F99IKZq#(`LXTwz2?QUC;dT0>CaDWFG_#zwh^U2h$#K}sqIDS z&(CZ`=?|i-n`ihBhQ8Dqi?W~FUX=bIqV(q%wil&8zqAphKZq#(`IYTO>CZhjqVxw5 zr9b!DUX=bIqV(t2wil&8zp)XeKZq#(*=&1J`tw^GUC=xzJ?Rf3N`HQ5dr|s>h|-_` zw7n?(`Mr%O{XsI+l$g4M3nyg+4iFJ=f7-3=?@}Gf9|ur zDE;}1jVS#=MCs38ZLjIgqui7JAfoi=e%p)EpTF6N(jObOm)(h^KYy26eWX8#DE&c1 z=}&S(()^m<7NqnC5v4zfDE&c1>CccIi_#xNl>Q*1^al~8Kf`vcUxmMn&K}+-{Nvj2 z<_;01KZq#(K}6}#h#hNY_({ld=?@}Ge-KgngNV|fDRwMMe-KgngNV`}M3nwawPR8G zgNV`}M3nv@qV#8)9gET*M3nv@qVxw5r9ac{SR0yW_yNNQw%(i^5v4zfDE&c1>CdPg zYws+K)sy}pqVxyR%BI(&hrig)utr4b&kQ>jr9X%${XsW{@AF!>`o;8*+yp2NBV<^(w}W@uYZ~n=6%%g zhVZZ1!*>WXZA9r0B1(TAW_wZkgNV|fS+*CYKik=e(jP>W{>-+$DE-;qMwI>_qV#76 z+l$g4M3nwC{|qqv>P#_|{_JEUN`DYh`txwxi_)K+ZA9r0B1(UDvArn$K}6}#uC^DY zKfBq8(jP>W{_JjhQTnrojVS#=MCs3-wil&8h$#Kp%l3L(8lDb4=}&4SN`DYh`m?v~ zMd{BzHd>s8v7R!#^>NKpuS7)Y&%UY2*BT9b|QTlU$?M3O& zBWy(J4<{GtfctNQ`+B0li5cW{ve|C=TKXa(jP>W{ve|CXMrt9=?@}Ge-5*~DE&c1=?@}Ge-_$;l>Q*1 z^al~8KZo0bl>Q+4WOLcQVR)yL+q;lOwil&8h$#I*MCs3BTk!1W0@{=QAfogK(LXl5 zZW{hrJHzZTw&3jW)E}4rAfoi=2-}O&A4HV?Afoi=NL!H7A4H?!XIRFiKZq#(Im#BK z^as(>siEK-hChEw`*h|(V$wU^zAq(6_9Vfsja5WS+A+*^h(IklNwiHOo4 zM3nwyb}UMN5K;Prh|(WKl>QuJ$9m`fVe;=9PQ$iS;pGGor9X%${Xs5%QwW{ve|C2N9(|h$#I*MClKrPwyYr z@Q1_Kgn!i-KJYlh9v7uQjKao#Q*1^al~8KZu%7-^Zmth$#I*MCs3&_P8kh zK}6{fB1(S{QTl_3(jP>W{ve|C2N9(|XW8ST^al~8KZq#(K}6{fB1(S{QTl`Ep5_AE zll~y0^k<1ZE=qq8QTl_3(jP>W{vi57bAkQq@P>2SnW{ve|C2N9(|h$#I*^rb1`xO&nbL_cn#p7aM1r9bD`VG6lj|e>K}6{fB1(S{QTlV99gET*M3nv@qVxw5r9Y3eV^R8ph|(WKl>Q*1 z^yl$*EJ}Y6y)(2M-ECykjz#GYB1(S{QTl_3(w__MSd{)CYJS*!T>68E(jP>W{yfo+Md=SBN`DYh z`h$qlpC{R|?rSdAJ?Rf3N`DYh`h$qlpC{X~#=>7l7mmE+g671|5K;Prh|(WKl>R)$ zjz#GYB1(S{HD~$gkt3(IHlE5x?Y5m0Nq@9MAL$RGB>Wne{w$SwPg?q;9VRXP(GHWA z{%D6uOMfnsW0|Yf`g5_2Flp(Jc9^vE=MouV($XL8Flp(Jc9^vEM>{kMhjx?O ziKIWv6NBXl|rrbyRqtT?LKiXl^ z(jV>6NBW~tAL-8unewEiKiXl^(w|FZgg(+AjrvG`R@z>a{%F)k`twxNtG&#fu~fdS z8g9R=nwrdB81}gsy>{f15QKNQmrI99OMkS(q@_RFVbao{D`ZNOmi}BR9VRXP(GHWA z{%D6uOMkS(4Y}-7K9TfCJAA6?(CnB#?IQmz<6DQq1NX|2-9r#QxLzd(y;(INc9^vEM?3V9{ya^l++KMp{n4ns zUT?jBc(C3!@`cvylWWxWI=s1*_oP1>wY@0)(Wvc3>CYOOM(-*=k@QD9Oj`P*9UAk9 zlm2MbNBW~t+l$hlwKC;C(jSeQUhRA0!O|aX+DH1M(Z|F3I_b|k8M}}4N29ja1LdNpsOiCbvOn6?+CKN_{YDE-l>>D69fE?tgShA@LihaWW={l>_1LNH_GRPAtf`0MNwo9NDw zo7-rKMt!6|8ugL>Xw*mgbJYpmg`ki0N2B)nLFtc1eWX7c^^yK))JOWGQ6K5g(`ANz zq(2%pS7Imq(WsB~N2B(*DE-l>c{)re{TbSBX#bhpZ#^<|x0%}w&7M9h?87&_Q!+C1 zF|JP^5CD5KZbvmHT7YEh8LOUKTWIY2PDmZMzU zV|QtqJZx%E;B>Pa-Z?lT7WBqw{<>ZGt4U`|8is7r?Z+EGc9$c==0Q7H(6mS%S`T^X zAG^y#>oLjmWBe(i&zA5MnWCq6^Te1sembABJx=FoJYlDA9Zta6)5BA#c}j$*kUk+E zIx+Q{Bq!z%XM`(N@Q8({?9g9kZX13d3V%+Tzt35}cFmlXt1h`>{j%jr`sn^`eDK7cMw>&GKcJU9|4tD^{*rfAyRNhb%heFgBOIb1q)FZf$bNA#)Bnr29Sm zq51#w&N}P#bCcxaRZG^azGUg8%U3Nu_N4hsFS_dL`Glc{GukF+Kf13_~7YT^M_<)#?a`EqgMqL+wimv;rF2p(?&lqeDL<8 z>zlt!TQ}{eqqmHf!w2p3s%x)(<14Sdwru`4GGq9_p)*4e{%>Tf(Kn2iqx0T4`iIef z9)8sJ!;jjrDRz7F+vvBO--V1`JB~(gY5!a{zmKdReM9)~(6m#hjqLP>(Kp#rJ2Vac zd!=^Ra;3I+rTzy8xZ{>9qaw|J9(rP_k`8V{ZA|0~P>&@JBo z%Ci5TKiePdw|Lc7&8K)%{?|XnTk>G}9Pf>*|3BR1y=nNMhu;`JzmxyHsr?-9^zeB` z`$=B-EN|QJS>9VmZ*M=w3!mh5|G(qtOQlKI@Qv-?-Wc9v;#8KD2vf z^IP}%-)Q?W-{^N5GV+Y^5Bs)W5gM0GhqhojdTUg0hyQNDrtB@@P`2m{Z`qPF?A9`# z;eY#(yMkMA4d2wR;TA0T=C)vb+WfZ7W6I}-uU&_e zh2i%H{w6xP@}iZi;%|tXZ*TYfwA}S=HFWLp2Zr0PNnh38adls^zHt1{BUg_;Km4uz zdUe|s7qlOgKIrbE|F=IX{nlq>Jty-~Y4mOQw&C0Ghwh?>CwZU$&|P%<#_GR)!}ic! zboXN>55i0Qga38+!9T+-{<{01fAjUwU37RVKlE&FZ`s-(nET&*A$`z4SDH@>ySwPM z>n>We?wDoE)*RdZSmm+nSA?IcoVWCxMT?gncjiflCYP*SbIG}vtz5CL#TU*yeBlG} z1q0e2Hh?c2zz-k57Y*QxBfelkGtYT*lcnodtzWx**?hE^zx2Yx+5-sbO-Wty#T(Y;F64rRU5)G+DZ0huQf&lfj8ySjReLqd=@85*Iu@I&AN-%ufU@pD$ZNfEL2o*-s1MGh@UbYj}AoI zM+YK2IuPN5#*Gd{+7CGC4sDKMz=_pn15T_q8*pN^*`j2{s*A2%o?LOon)%^>&ChCw zi%N5a(F;rX;q3m`ocU5oHXrlx_I%6(Z!cmI)vM3arK?x0aLd%3 z@!f)OQVs7edC|2}+DDU`-;T~QVNM;64z0rjio}P|)?O4}pu$VfJUI=b3u4H+Q{?cz z{q*!1+%GzGx#)#g0snY+C&|2U8MtEgC6^-(Yp}3A9pY~C_{Kpvo%_C=wwP<#Twz+w zwd`T8We@Y*>|vh%JshpXg7!%iPyBE_+57?xSOIAt)$g7_VLhWdea^CGnsZwoFHOhe zwdr`gI315yr{nSRbUdDCcNKRF)I1&fT=jc6ntpp~yCTie$~}NzoIY2)Uh8-X+Sc(3 zv^ZXX7RSfm;^^?Zc@u}D>~oW-^sxSy`EbM2Jx>=*kT0Ad=gh;XhaT4dkr2*@V!S<< zahyl%C|3ktD#qJ$KH*X7T|w-F8rt`}-|69KmR;*;lHH{|x;A$>D$?NrMR=fLCSB|3 zc)H6nTQ`T<&Cs3Gq0FKIR|vUz=DB1F#X-MIP#ECw=922h4RyNuT$&!{()2KwCgARJ z7!~PoRHVZLiY!c)o^saGr>|MLZu!#XtCsl-VAnTV?G8t4ap<5$?ReC_?_GU3KH<@k z2#*d$c=YHCkFPFzlVwl-@o}Sh_Ic`t)-8?Z*wSc*Esf^a(r9)qjh4KnoLM-_TFMha zDQBjXGgHc$DUIgPy%5AFb?-?g?^cfu?^cf;f4AD+HQ~$(BXlpt(bPN4xrepx_xc}- z^t+erVHWA(Xa%|=(GqkxT7zyTd?1=rXV6WT2J8`L(_OK`Vh&ui@D|^lpbPuoj&zvE z8|Ktu9&ZoxczZZH8@nRWGITgTsCn%f$>Pnyc04N6U542_%%#K8Tsl0UNHiCDM-iW{ zgB~j3i<4(AU$c7cVPVS4$5t+CAD`ZvLh~Wayn#vdagN+ChN&#QXW$FXZ2J&qlY z9>)&zaSSIz-&?0~z93n@YVFEPS1n(bhP7Se*GPItQxhJ|O?Wgp;hbGKv)k2c9@y|Q z+PoPH?|4^SvHGHQm`7;Wz3_*#soy6L&7*th;OMaaQQzxocP-}OhT%Kh=Pj+d<&EB& z_OkvTspwl;dy#6M>wWI@8{EA|8N34Sa@VWGhoZrK&e$I28Qa4=V|$qE)SOgi=3GoMpz_52_O{L{~q4esr7<%6NUQ zLE!V|_5W<4#nCLg*3l$89L=%A(G)uz&9K9qU|9A;^?~ho`VYF}={_*vL)aW_d!rj4 zRg0se>Q1SsNQa{$9Uf35TAHr);pXmsY+ZD1>>6=J!cla0_kBJMX&6$Dr|{cAxh<-aha8EaW)nB8+pcLc`~` zcf6d?IFIXe?FZH2N{rWupTu3AXq{y~z567;bm3K`ce8e^xxH#{pt?)Z1LxtRpOw#C z?moBB=cu&x?JXJmKh&c`#1 z++jYPJ+rdGxLaF$(N)Wr zUVPEo<#?`zM&12ISnKwEK=U@DeIH<-k>jm;C!&4Ri;7{n=Fjc(BpT;jf^p6@80TDs zaULCR`w3`#(sY<-Msq~nH^kB7B%HGxZ_indbIx*{M~{`%k7h4Co~L};9R=N6_Hew- zWz{^(yYJ0Uze2v`b63|eGwB%4i=|^1xo_h`+`Ue^*S4_i{oa4|Fqf-`xmrEU#p+@A z?o&Th=^cu@XAX1i-Okw4HPn;O!s3%bI&d*V2fY)HK2n}P=&QFu-@Og`@~z|1kxTvX z73iwvSFgiUsd+5A4}jfqH1qBMuAsxwgVA9=7^Zr>8g2DH?}OSmVSPU9?ae4Yt-EVe z{4^VIJ(QP_Xs&%-KFF9`n#i-|Rj>A0Ae(PqaGv2H8GsdaV}^zNgUlc;<35{+UkuzP>p* z27jN_t>fVDqx6f72d?kmRfjvD)y)qIbsrHtzyskfAkBrM&l|QLj-E$dYo43E*3nbD z-#fF=y6;cfjPqzvX&;R$*9JbbnmXMzBd*i&L3N_(OP%hb9DXXxzT}6+ZXa#?`JG;_ zCG#KSm5s7Qwg6p0t3tsP(8x=(rsJy+d}X!FFE z4t%19L+!pXb%mNGkdK(kM%CO*atMAsO3A&ri==l3SU&h;W1;%+a`}SmrCg0L%?sDR|*Sfw>#NGoJ ze&iv%FK)Igjc&=>Yf?0{e#YTO=`hzV4AQ;)^JcS$!|QMJLEQHL*p598MMQht~ZlP`W3K!u%lM9XIgRd};=EI9M%P(3Me|Qm^ z4S37n@5hhA5qFr=?O{%=hxr)yaI~6TZ7yeM-F=c94&$UVAD14NwmU7S^XJYxZ0^GO zho%Rf6TZhg`J#0lKlsqak4z7~ve`vB{AbYwKQ6vmPV&wOQS_=Dc3AK zs4eBplyYWDIWwi4nbHS%@6hLEzk5{UXG8C2f0kYuHmb(Oxp~l~+kiJx<8Pw72dMjb zr0BD`Fk^XB8m)!!Xf=dK>mi&g5+>UBEyOry{c+Cv<9ty4=xpe{wOG0AYI)m$HEa&O zy)MKnKj=HE?(6ipefLf`@V;*;!$TqOws{tYW9s|RkMr)K3s1|-m#^txJ6!YozLRgx z#P+71%h+Wtiv1S3~y`DY79*&2XH#@6WE$5H##Q%b-`(VVC?cQhctO}#`dk@#c(UiN^ z3&X|^SD$|RIlZ4EvO|T(sCzPVs2+~a->x->>a~s@wXSvapmjJ}v<{EIFh*D1Fi`hF zcQ}s+{@hY@<1Srz5ouOUp6GIBxPREzUVWkqU)zNfZ%%^#pOAEzOW122FJYgT)@Ef} z%pyH}*!Ufof5+Wx6R&<-kq6Oh%~c9`z$X(Oj%s%}s@>u4kv;L0prm)_pnR>thpt&F z{aCf{=Z4*90^^@`nO70}JxkMos~sx0?@HV&QnLu{0~|jYS{y$Jat8UMY2VaFMY>CH zRAj)n)E$nVQ5}xfy~EMEcQ|@X+n4WXA}t;8&k1_BMFYOm?&SkMUhd@sK3?wS6ODg( z|JU|B8Su0koUB2#=?gy>?lUu%@;gh?0uC>>p@G(OBRp-3! zKjGgJH(z`%=>Efbhehdb{CMy^936c7BJ7^zz1BSV9*&N(|Ho)y{$2Ixgp!|GiVj!n zgyZe*OxGq$!;2VJE6k$%Vj`Zjdf%RVZ5AD^dp+h=gKg#-H>J}~L~z_jD=jA)jjyF$fJ zypG3DypG3DypBf?Z}%|+@%XTOaKqwv&7-SphX=F{&$iX8E=}9t9_afD`I)2UpMi5Zd?^Bk(S5G|4L*f2k<%MAUDr|1@ z$A7w^cl#Hg}k_gVGD7hQ7s`myfQ>b?^SZz=qox_700&V%l!Dg5QJy^HR17BsE9 zf8yAFVD5hgx_#)IHhunKMDOVO>_gGZ`s_o|%O2>5g`!hRp8pTjhfkJpc1oWCH|M=e z1JCyHegkgWd;OyGTgKx&!VL`-(EjW{f@_VIzFfl z7iqi>7h#--Q@-zWqPKdX!P3=NENeEw2si2e^zMH2%{_0Lho<`n{w`>S?eogl!#vnf zrfnP->0XnfCsl`8B-HLO7tBmCIt{w^T(I6;qSoC7I?S=}GKMG7pnp)%EgcV{8K(c+ z>kdZ;(P2L5y&}<*vuhn6Svw?;tXZIT^`qJyj%s&!QL=h$EPN+*QMk2^{ttO$ zCfTfZ_q-1GqRmT-{7{zphm-B)*gyUH{)A5`*1mt^aVh0tDdkZq2JCP&VuuF|8Le*DnrCu&EZXJZL;~&i*{C+=JbH~eYi-PF^coMSG2rDYJiguC z&fw3;x}0kfM(eIX6LpIgrRx^0N{6EZ?QnER9p(ar^Q8Yrn0;PfwJpa}%Haa-`|l6N zIS*!>N7bdyp!!_m@jB6QN}XtJ`yapFhW2mHNruO@Ey5`(jV97v;i9KthofcbFb51r z*XYDiQh&q0b{0Q*6)vK>qJ7@f-f5Ybo;YWgThZIf; z{otFAbO_{P%)=SyT*GnB!x`s1oN*qVjWRBmcf5Tx&+c=!Xqp|4X4&EJ1NwuuTOIUo z#(Fh4IM+= z=jYPJkJ0=miJMO}Qg4bu#4+&KNHUZx8qT78Bp5u->&r)yb$$7i{|6TYd$NwaJv*X*3bjO=Myj!=c<+$bv zFNLSV&k|k<-$D45!fWA23co??@7&d&CH#HD=L!#M)ArXU;hFF!3IDb5Quu+wx0%w- zf0J-MZx0fl?9z?fJP(^+rwN}cT<3p<@Z*Iy&;RDv%Z2B{)0QU5YlRn%zg>9g_(z3T z!ZWG!S>eg9-8_|lLwM%+kAxS(^*sNR@E1A0?bL34u6KN2;jeUjvGAK6KTG%<9A6>) zEsj4&_&XiHN%%&`-zoefj#t8Ocl_JJKjZkXh2P=$)UZ&^_3EpR?=JjK#}5_$UB^!q zUOS!(|Ec3o7k-c9Hwgco{>Pj@^S?bhKO z$9EQfzTJEg~Ch6&lLVv$5#k{x8u(hUI{-?&fA-WC%bp&v+{Qe&m6CW7mj~R z>pOmr*58BmN5TtGvksZ#y9zHHpC`O>{3PMYo~-|5t?&3ct?&5Dw7%nS()xR`{>Qbx zIa`i_5C z>pT7xt-n9(->vl>zhCP+zGHYR(yT+}_@jj<2eAHe!ZXL8D7n|eTHoU=UuMdmK_Y+<@ zeuVJiF>HU1@azckm0JHu@mN=2Ij#R#^6zVX$N!-9Gq&GmJ9)kw zL%y%@#t$zafYqh@PAJFGu)<2p2&syK{ zS+l!!C{AJf1BGX&l4rt`)5y;kUO7Id^-pK}>$LtEll)^^UwAIpv9AhG&+6JM z|B3Lz@%x0=j?da&&W9zebAa&D@uP$%XS4lz!gI$j7hXAjjqvmw)_INa!twVCuO0uK z@a$aH`JV97@&6Q_oX7TCg%2E>>qGAN-oh)#4;P+3j&;ryUO2v7c%2{P;rJ(o*N)#QJiCl_ekHtgd^mj3 z(%wg{Wcyu&=Z?=6UO9e}@bsyy^AzEQtV8Pfp29Q77YNTCKUH|)crLtj{OQ6g$8Qi` zJASM1lkV@Y?Z{geTA9 z{Fe$(9e=v;%<)$U&xP-obiZyDUOIl8@Y?aO3s0Zj%}49}OnC12{aWAg9ro_lp?3UH z!qexl{;|Sy$IlmDI=)JH?f46Yr_VhmX@2SaUoSj&{DZpOmp)_447t$z*czfbEs{&}tM`1iHG9wrCQtLZjXnn_DqxBtsuhxG7>wjMBJN^T$@Ax0J zzT-2)3E5m9(igJ+0m5^~j}l%wexC5!@hi0ci&*~!THo>4YkkK*r1c&Dvethw>;FXS zJN{R#@AwY;%k{zWM+={IT~|MRtkM2DPWW8MFBHDS@uvwNbNo8t8yvqy_(sP+DtwdU zUlYFB@t+Bw^%BniZ^Gv~zT*MiIxKPgVBuqqpCEjL<4+d8(ed@dH#z=t;hP=5Rrsuz za{jjqpX>OY!k0LHkMJ?ar#zxN-VKiLE_|co3xscS{B+@)9bYDV*2_5mXA7U}_)Wr> zIR0+oV~&4T_y)(nCw!yhzZbsA@omEw?#*>zv*QN{pLIRwf3)zqjz3=b6315wA9MW0 z!Z$cx3g77X$Axcl{2RhIJN_%-vtG{mk36zF-nowNCVYwG3xtn3eunT3j;|2D(edXA z-{kns!Z$nqe&Mrj;QYTRe6Hg^7QV#szX~se-z?X$?GNhKA$>(xU-?18E60x!o^N3L z^MxljlCKtCI{sqe*(=%p7U8wy9~EA_itWEDJiUqhZsC>V_Y2Qo&GtJ!s#}NTAIJ|D zUOIk)@a#2g|778{@O?$D6&L z?ROVmJH9}8@lR}jy72T3j|ndwe~Iwyt!)1$;kDzp2`}Ep_TLnqzMcG6 z!Yjw89MT3hgOD7b zcJ0IMT>I-kgqM#0S$OUE%sKM7zmIkH6P`Q%7~!SkON7^suh9A%S^wEu-|<&zeaGLa z^&S7T)_*_ie@E*({u{0D__Vp*I@FHuAw2y6>n{+VJARt*((#M6zT?l(`X6Nd4O-vv zw`qOHKdJQ{zf0?Xi1qK$`i_sx>(-%kd{^PM%T?oJARwicl;Y#-|=5){g1N#(0sW*IKGSU((!r1YsXI!o_>t=FVgysKSS#~exufR z{2f~VG-#WXP;#Idxh7Ik1Xicq4*Tr?;<>{$ma^L91q5?_Wecv zX|{ig@Z>Y(>xGw&UoSlS7q)-1@Y?ZD2roX%_FosCevbU-!YjxBEL*bo_YX*&S^EMB%mLYlIhHVEdN{PrpcB3a=dhsPOztZ2wi^$(PCR7G663SK--L z*nazk-8$5cA0)i^D%&3;JpCH^`NAv5R}0TKvHgpLCtoLjgYeSvj|k7c!S-JjUOWC% z;l(%E{%^w5JIQxCyjzFL@k4~?cd`A6!jo^2KSg-y_*KHQZ?pXk!fVIhD!lj(+kaAc z`fudl5?(p}YvK8K*?!t0IsgB?;}^D{dJeBp)T|0uk6e53H}r>yg@!b``0AUydQ+y6m$?)WxG$o0YTeTAn#XPqO2 z7mlARymtI@;n^=(=UU;VF-#7AK|&;IAUU#aySe}~q0ywduPe@E;8iS;*Y zeaA<$ZXHU;Q{lDai-f0tX8k3?bH^{!`i>V`-|?HZ{(rIlMy>Do9a`V(2^*ZGVo%@dJgIj%UJa;c3$Sdc5%DFX0d2SK9ubv_GcUe*f$E^QC>}_|3v|$KNZw zaJ+fj)zmK?|E}=L@#eDAw67hXer(5+zlH|kSK9ubBzp=^9Y0KX=J@HtbH^_cUO4_t z;icm@3a=c0yYSlaPYF-%=ls7VJaznD;hE!8j+67j@!fpOC_|C#>$L9!7{?7TIC_Hui$-*zkFT8Mk>l5XCaC{%($#6HW z)>$k(b9{;L!tqPBzT?l;`Xj9WYOU}1d$hjepVRt|e_!iQVf{a7eaE*wsauD_@%@EY zjvpmFnacW)6P`JKrPg=+g<9Y7f71HXSpUOX-|??#eaG+C`i|eP^_v%n@Jk=x9Z&Ao zA#?m-;f3QT2(KJ}vhZY-_19~C$6v1X9lurUJO0mFe+KK{rS%=ZSL-`I^%Ob(9p6KE zvK8wu6rMSLmhi&y%e21Z*J%B%S^u?K-|-J>eaFA7^&P)k>um$$8Xa5j=x9v&xLQ(o~23h72&^k{9fV7%x*r~e%sT!<4T1u zkvazp9}~WV@Kc1B!Y>=@f|XilR#*Q*Y5zjuh44!Ft-`bIy7uAgv-a1gwY~7`h5tzF z&+gjqEBt=px$yIZ?{T`Ex59T6zF2rIJQIF_@O1mG{w(3^g=fOG{i}r+uKoLkm%_u- zs{QqK;hTle7Jjerbcb$SZNKdq-TcRdYx_qEFNGf{bxsw2hw!b0Un;zI?XMF)x??x4 zw!c+)DtxXyzMmJK@6@#q({6wLSa>B|+fO;On}4!1+wUzr7q0D(6<+Sb_Di+St{vC) zd7khk!gYOKC%h1z$^35GvTxL>e}o2jD!Pk z-UnsEwf(-rH@NnX6&zAFT?`~YJKSy{fJalh=EfGE@T(56e3NKyz8-#Cm?cb&K_vyyf`d`-i!nOV{ zw7&2KGM_2ubn~x;?Ze{xkh*` ze6G}ao$z%3Zl3x)`moj)uIJC!gy+I%OPyZ`Un5+vpHt53j;j!^*U7zvZ*p}O3r`N< z`E#!DT)18zt`xpOxX$Or!Z!-n`M*(kC42{&|LuW4(0-oP!QFiJllFIo|2Ef+&BAvU z{u|+=hji^{2;VwfcboRxIsORYyE=ZH@O>R$DtxYRJzUh9Rx$y9{ zMf*$l^DKqydHX)8vr)J{zjQy(O8Aqcj_&7~&gosnpT^Jd^ocAKlM0bzJxJ%!FrBNB8qA9M}CkE5~&|&*ac< zTs_ZqKhJ57>wccwIIjD7&URe)^W53-v!-^B`<{;LexCa|uKRf&cd5-ITo)wcaq9M}CkuW(%V^IYS& z?&o>6ca~;?HJYV3r?&tYZ$8|r?4UX%6p8w$Zoau5sbX@oIe3Rq4pXb{h*Zn-- z>$vXc`60)3KhIA%uKRgbj_ZD&pLbmM^Zc^ox}WDa9M}CkzvH;>=lKK2bwAIaIIjD7 z{?c*X&vUcmuNdvt`Hzn4ex84IT=(-FUcl>s?&mq`xbEjU({bI;a|g$DKhIqq*Zn+G z$8|r?102`=JRj}2?&p~a*Xz0N=UF(e`*~K5>wcceVSHWC{X8?rbwAI-aox|ea$NWG zOct`f?&p~~uKRfwj_ZD&mE*dfXL2~}>wcb@-On>Q zg7tMj&&+Y%&$Dn`_w%eA*Zn+`BUxYf^UNIA{X7fDbwAI_aox`|Ig0glKhMl@-Osad zT=(;=9M}CklcQN*_w&pg*Zn*T$8|r?%5mM#GkGlQ>wcb@wcb@wcca32d+Xd1fb)>wcceN#wepXXUu==UJT0_S-#7-WQxguKRf=r;_V_o|WUepJ#Cz z+v|Rw+3DoEpJ#Fgx$fs#IsSf`XK^Om>wccuS>(E(XR?G`_w%eA*Zn+;v)Nwv^UTg6 z*Zn+`bIEl-&&qM#&$Bp>?R7uT>~Z9}pJ(!Ta^26fa$NWGES|vjx}RruKDqAanOs1w z`*~K5>wccag>0|;d1g-}*Zn+`Cz0!Zo|WUepJ(x8w%7eUv!{^jexAuva^26fa$NWG zEONHj{XDaa$Y+HQaGLka$;ITlpJ(NGChdz$*#3Os*)sAmt-qXH_w%eAFSY&(w*Q#c zzqI4IT*q`j&(d+-&ojAw#rC?N zXYRP}=UF+f`+26TSx5KtEF9PUJZr~wKhJE8b#y<^(sA9-GkF@@>wccOwcceI=0vSJafl&KhMf>-On>!&pNuFXW_W+ z=UF?h`*~(pv5xNNSvs!!c_vS1d)?17cU<@LtQ^<*#)-h2y%PXYIJ|=b1f^b#y<^(sA9-Gbz|! z_w&ph*Zn*z$8|r?^cvRD{X7fDbwAJAaox`|dp_&vex9Y{x}RrqE!*pUp1I??pJ(N` z?&q1lfOT{~&%$xt&$D)1_w&qN$U3^8XX&`^=b5~S?R7uT+;QE{vvOSb^GsjNI=Y`{ z;kfSSSv#)#d1lwKj_&7KIwccO;QVzz z&(v|<&ogse_w&ph*Zn*T$8|r?(sA9-vvOSb^Q;}${XCNmoWJhpnL4ifd1j95exAAG zx}Rs^xbEj!IkW(6fvQETcD>en$7EHo7Wxyv3;l^7c!Yl4yvFx`wDN-ZNy;nY=PPfBKUaD7+SO_F!0Y=Wyt6l$ZC@+ZLsk|Z%pJziHKF{nr-yc5Df;fDh6><1H8{+VJX0P-8;qxqr z!{=EMhtIPi4xeZCdfy*D&w@C7o)vNUJR9Qhd1i0${o(U0h{NYu5r@ySAr7Bs_Se2Y ze4Yhy_&h7(@Od`G;q%NY-yc5Df;fDhJC);oBk+0dA`YMDB60XUcN2%tbL@>WAM}UM zbDTJQo>Ro(^PD3NpXW~E@Okbc4xi^DariuU6Nk@p>~H-1;qx3P4xi@~arivvh{NZ( zlQ?{yyNJW*xkwy7&)vk~^BjAVpFez_a}+%s=4k z;qz>W!{=Gv=<1H^N;&__&gis`1t}p&+MP29vnW;f;fDh6><1H8{+VJX1DtO zQ^)GhmBiumtcb(s*${`%Gy8<^51(g2{AN9GMI1iQhB$nl*(ZH}_&f{Z@Of6m;qz>W z!{?d(i|-GgXF(i3&x$yFo(*yMJhM;v{_uGg#NqR-h{NaE5Qon*`?T*5pJzcFKF^9c ze4Y()_&l@E`2O&D7R2H6tcb(s*${`%Gy7NHA3o25IDDQJ@x3NxKR3h=Q=TpQ{u9az z;_!J^#Mhxe@k`PFv%ddT=uaFz&x-iX=uiAB=>Iw2|912z4xeX596ry6IDDSj=Y4

*4cE-|!qh&x$yFp7}R@J$#-G zarivTfA{t9d1j60@Ojq6;qxrMX^UQDa_3(K%#NqQSf9&hw^UQwYIeeZqariuo-M$_^&vd)z@Of6m z;q%Pz@b&O{HpJocEdN{T@&9SU=h+a4&ojT%*Td&o5r@w+{nXdP=UEVk&$A{DpJ(U=k~n;x4RQE9^Pl@Z@Of6m;qy#)`Fi*~3*zv3*2LlS%>KvsfzPuf4xeX396rzd z7rqaCo)vNUJku|IJ$#-8ariuI;_!K9zw&+H^DK$O=h+a4&olqE?*pG_MI1iQ^c!Cf zpJzcFKF^vse4g3ez7Kq!C2{yX8{+VJ=INB~D?aX*BTtm?yDH)*Do=a)`ty|+#NqR- ziN8eav%P(v>y($o-=n-C4xeYfkMHwst*?mxQh6GQ$l3?47e3E|IDDQpariv5`}jWa zd6vZC^K6L2=b7*4`@rW}DaX%`@Od`G;q%PyD}7K8pJzcFKF^9ce4Y()_&l@yeSi2o z3*zv3R>a}+Y>30>ncdI#htIPh4xeX596ry6IDDSj0lq(co&|CEJS*bxc{ar1^UUt= z`@`p15QopRA`YKtLmWQO>;b+%e4Yhy_&h7(@Od`G;q%NM==;OxSrCWMvmy?kXG0u5 z&+I_oA3o25IDDQJaritN;_!K95Ayxt^DKzN=UEYl&$A)Ee=d2LjrsnW@`Cs(& zNqo!6`gMo+iW!{?bEEc3y6;q%Oh!{?b3htIPhe&6=X?&$YNCGkfpuZXWy zUK3xVydl0`d3uPS|7FTE;#VopiQk~SApQ~MCGpXZ;iK!Sh>w0u81b4oe4Y()_&n1? z{ro4}r=va@@w1fY#NqQSh{NYu62C(GRK%}WUK5AUvmyR@txpeYKWQJ>KR-~O5r@w+ zCk~%yK^#8Mk~n;x6><1HYvS;EHpJocOo#gU!{?b1htD%74xeX196ryIIDDQJariuI z;_!Jk#NqQyhxz%#=a~_Q&od_upJzcFKF^Xke4Z6?_&jUn`2WP=^Gt`!Ji+1f%!$M2 zSrUiOvnCFoXByp5?F0Sc^UR6E=UEbm&$A{DpJ#f6?+>46P8>eZk~n;xHF5Yn({K6y z@OkFM;qxqs!{=EOhtD%T()WkYGbaw8XGt7B&zd-Vp6R!JfA~Ce;_!Kv#NqR-i63*O zQXkMjND^UR6E=UEbm&$A|e8~PvN`@`p%6Nk^UBo3cv zO&mVYbfoVOpJz@SKF^Xke4aIN_&n25zCV1PIdS+rOXBc(*2LlSOpo^c;q%Oi!{=EN zhtIPn4xeXwjPDPhXHFbG&rQnV7lO}ofjE4gC2{yXE9FyNI;8}k=WgYA{}_Cp+3(0a z+2>guEgV0O!{?bEE4>K$@yG4Uian7rMjsE5z9qI&o|cT+ul zp4o}ge}&EmKF>n=;mYCjEU6wo&zkDt^K7Vo{yhD8?Ibxb`org$D~E3rKF?<BSlydZe&$CpH{RW?Bqa67FpXb<< zr9b+>=Q*w%^M}tfSB`c2+}eBgdFH1}fBgM3e4ca4;YIvOyMCj;2Y9)1_IX}K96rx$ ziNojlCgSjU?oy6@3!mpAariuU6Nk_9fHUN}_S4rLKF=}Y@OeIz_+ER<^*)05Zz(@Q zIqsL^m5&oYSNW5OKTr9Ta`-v_O!*w~H!0sq{3FVD5&xRQDeJ~Q z&q{fw>v@jW*UGWqwkmIwv(Gad{l!uHz`lK#){iU4{k5n(SI$1qN;$qSg3ohNIrc4l zp6Mxa-eo#}_&mpzWB%}Yo~j&Q@8I(+lxNxpKF^Xke4Z6?_&jUnx%Pq2Gd)%22@aoU zP8>eZQaScHe4Z~O4xi^MiNoi4HF5YnuOSYf=NpK_=lN#h@Oi$CIDDSFh{Nake&XQAarivf5Qoq6JmTBpJz=RKF@Tv?+>46P8>eZk~n;xHF5Yn(>cCBe4aUR_&iJE@Ojq6;qy#W zzCV1PIdS+rOXBc(*2LlSOy~Ok@OkFM;qxqs!{=EOhtD&e=ljFwnG=W4vm_3mXH6VF z&vd@;51(gF96ryIIDDQparivbTHhZ&&zv}Xo+WYkJZs|cd8ViP{_uI`#NqQSiNohv z6Nk?;J;V2h&od_upJz!NKF^vse4go7k>~Jv*2LlSEI0Xj_&oE?p2O#vp6fY$o;7j!Jj>_#diXr^ zEuO>YnYMZkpJz=RKF@O2*Td(TZ}S{J&ot*be4aIN_&m$!`+E31^LfwV^Gw@4htIPn z4xeYa;OpV@%y)PWpJ%$*bND=K;_!KvFYxv7dFGdR4xeYb)N}YeYvN<=U*L@X{-nIj z*Td(T|Dor()~7%6`~u}Q@j3K=p|6L}Gyh}HEA;;p&u>J3<%Q-Le4be;_2BS%mc-%n zY>30>nZL;QfzPud4xeXwv9E{Evmg$iXH6VF&+H|>4}6{_aritN;_!LqFZF%k^Q?%& z=b8T0*Td&o5QopRCJvux_A=iGKF^Xke4Y()_&oDJ^L^m+tcb(snO^Se;qxqr!{=EO zhtD&6h3^BOXGt7B&xSaBp822qKJa-~#NqQyf8p!l^DKzN=UEen&og_a?*pG_NgO`U zhB$nl`Q^S3e4Z6?_&n1Uz8*f$f;fDhHF5Ynvnzcc_&iJE@Od`G;q%OQ`abY^R>a}+ zOjr4O_&f{Z@Ojq6;q%O{_I=>sIDDQJarivbt9(6to&|CE zJZs|cd1kNnec-)gxSrLcNGhOTJ;qxqr!{=EOhtD&+&i8@Ovm_3mXG0u5&-``14}6{# zarivb>wP_Zo&|CEJZs|cd1i0$ecBpJziHKF|Dbe4oP~F5h2O#3z-fH~D(_JPYC%YJE-oGUeHueV?n9 zm&D=oY>3~Y_4)O_&sUXK#P3j^-Xisx<`{gQ8FBbLbK>xM7R2H6EQ!PCSrLcNvnCFo zXG0u5&-Ax`{_uHb#NqSIiNohv5QopRBo3cvMI1iQnmBx(4RQE9(+z(9@Ofs$;q%Oi z!{=ELhtIPl4xeX596ryQIDDQBarivbTmAgu^UR3D=b00S&$A#7pJz!NKF^9ce4aIN z_&gip@Oh@U`T4`=nGuK2Gbaw8XF(i3&yqNNo)vNUJZs|cc{ar1^Gtu|=MSG}MjSrR zoH%@*1#$R1OXBc(R>a}+tcf4n2FvK@(}wsN%G2BZ{NeM=h{NZZ6TedX6w2{_gX@)7 z#BaiUh<{dj_70g3`g{-liNohv5r@ySAr7Bs_DrgS4e^tdXYcm?&sSa$e=hnHe-Zi< zzXtvP-uHhO`V;>+`V;>K`V+qs{omvJ-~UKihl2PK$}8e0C~t_Lt2}$}DQWb;{@kp* zAYLl3h`&a8L;Rh}v-h3i`hQ$`LHwJ_E8;&>-Vi^qopAU6`@G-xhtIPh4xeX596ry6 zIDDSj2Yi3{JPYFRc~->X^K6L2=b7E;`@`p15QopRA`YKtLmWQOu@6dryl(_P&vD}L zc}@|B&vTAAe4aar!{@n+IDDRq#NqSYO&mVYv48OMhtG4IIDDQ{#NqRtBMzVEPU7%+ z?jjDK=OS_VJa-d^&vWc1KY#c<$BDz|IYk^k&pG1odF~_*pXV;(@Ods0htG32arivP zKIG>QpXWGn_&leG!{<3i96ryT#NqSYMI1iQMdI*z?j{bO=h%n+{NeK)Ck~(I6!F>i z7y6@|nIjIL=T74AdF~<(pXVZR_&j$LhtG5DAN~B{^BgA*pXU^D_&n!`!{@n^IDDSF zh{NZ(NE|-T-NfPZ9Q%l$KYX6!#NqRtA`YKtshoYDSuOp+;q$DC!{=Gt?Cat4Ot*Lr zpJzoJKF|E0d_8=g4RQE9%a8hc_&l?Zc@CdvO&mVY;^V#^KF{>ep2O!^5r@w+ztz{n z=h+a4&$Il5uZPbw`=saadDg_?^DO?w*Td(TKIJ)lo)vNUJo8WcdiXpW;_!KvpYiqZ zd1n9WIeeZqariuoMPCn}XZoz?@Of6m;q%Nt=j-9~Y>30>S$^Kv!{?cO!E^XLYvS;E z7GL!B@Oh>$c@CdvMI1iQ{NH>%e4Y()_&m!m`+E31v#)p#pJz=RKF{K-z8*f$^fk}n z^Q?%&=b3-q*Td)85QopR{D!ZG&old`=kR&f#NqQS{$1+v{Wg4_6><1H8{+VJW{vLy zpJzcFKF^By)Uon)tsxGdXZ9`MA3o25IDDQJaritN;y3Ggv;Xk@;qxqr!{=EMhtIPi z4xeZCZQmb0&w@C7o)vNUJR9Qhd1l}7{o(U0h{NYu5r@ySAr7Bs_Mg5#e4Yhy_&h7( z@Od`G;q%PC>-)p!SrCWMvmy?kXG0u5&+L1?KYX4Aaritd;_!Jk#NqSIzVG|*HK{)r z6F*FOMSMbeLmWQO?7w{fb?8t0QuHT&75Wp0&oldh?|(D;6aNbO6Tcn(iNoia{m}P^ z&$A#7pJzoJKF@|Ye4g2lq<_`@be|G@o;7j!Jd4|WJ$#<&$DYIISrLcNGyjRNhtIPi z4xeYa+tAyXP&$A*9pJ#rjuZPdGAr7Bs`BPsHpJ(X^UU}6 z_3(K%#NqQS@8|2`^UMzL96ryQIDDSP{e3-rp6LO?@&9SU=UEVk&$A{DpJ(U= zk~n;x4RQE9^8O`Fi*~3*zv3*2LlS%*K2l_&iJE@Od`G;q%N7@_pd* ztcb(snGW{#@Oc)*;q$DC!{?bD;`_koSrUiOvmp+jXZ~Q{2R_e=IDDSzA-*0y&w@C7 zo;7j!JhO-TKJa;##NqR7h{NZZKg{=m&$A*9pJy70q}m7eKYX4AariuI;zypSe-D3{ z?{lK^lKA<`8{+VJ=7;+}FVXsn_;t$D!+rgGlo!O|^Q?(~TkEq&_&&c>UJ{4Tvmp+j zXZ~Bh4}6{#arivbBYi!5o&|CEJZs|cd1k*YeU9p0&6MEtEQrJBSrLcNvmp+jXO{W? z@Oc)*;q$DB!{^x$htD&6l<1H8{+VJW{>v$;qxqr!{=EMhtIPi z4xeZC7~da0&w@C7o)vNUJR9Qhd1k-k`@`p15QopRA`YKtLmWQO>}cN~KF@;q{<-8~ zMLbj95MQM{d#vw2rMw`%3H^ze=ui9_^naZ1zYG0|--`ak8}uiB7y3Wm_lM83AP%2r zMI1iQMtPRx0iS33UFi=FpJzt=#p?6SiNohv5QopRBo3cvMI1iQnmBx(4RQE9(=mSj z@Ofs$;q%Oi!{=ELhtIPl4xeX596ryQIDDQBarivbGCzO#JTv0(dFI6TZGVg!{T{6# z{&3|b@k!+s@w1fI#0%vO@fRph$NKqSp*$mgz4Dy+=+}$g{E3hLT7JY!;-kNo8S#qv zUhOnSye2;Swra#1;-jY{p2q$BPgkB1htD%7zC-H^;+HEgiC?e0A`YKtP5g^m-w?k| zd75ZHX&<xMmc-%ntckBpJz=RKF{f!Uul*1@jKF{hYz8*f$^i<(kANV|{lw*D1^DLF;Saj(xIR`J(cDwH`jtMmf9<@Of5e%X#7JgU_>3j{Ogx zXL*j)WB%ZuKF@jO$WQn@OXbK(_&gV>4}6~KnSTGk z=UFI6KEUU>Q#s}XpXV;+m_K};wQ{W657zekJZ~T1H?`|G`Z+h>DDyl@*V8lel?4FZTV-^GV!1pTy1cN!&c2FYx`% z^GV!1pTy1cN!&c2m-znX`6O?JfFnP^ZBQ~-aMZ#^Zea9&-7=Wo9C0bc|Kq6>&^4|3eU~+`RAUS z=aaa3KL5hko9FYDo}1_Ma?j24N!&c2SNMAKd|v6fc|Lb~Zk|u#=J~wJ*PG|_YR}E{ z`InxX=aaa3K40bQ&GY$c&&~7sSDu^alel?4U*qe|^LdTu=J|ZB=jQn&KGy!l&gi}< zul4oj`Ml2aT8JikDBO?(dhU+?S9^Z5qPEA;J3<%Q;$c|I$t2RF|rar1l< zH_zuAeIN6D5;xE1-}rj-d=fX$Cvo$9zRCA7&nI#7d=fX$=bL>W^L!FF&*$~N-aMbg z&GSjzJfCmzea!Po+&rJe&GY%UzK?l6iJRy1248QUPvYkJByOJ1xB5Qj`6O{59Cvo$9 z5;xE1yL=z>d=fX$Cvo$9?(%)i^GV!1pYQhd=J_OUo=@WD`TTp|$2_0J&GV`Jbj>mI ze7;BefSc!&xOqO`>+8+)N!&c2#Le^hKHtYYpTy1cN!&c2@ArMo^GV!1pC9n`=J_OU zo=@WD`MlBhG0!J)^L!FF&*ukyAM<^TWR0JfFnP^GV!1pa1ClnCFwYc|M7o=kp`Jk9j_co9DCk_2&5`Zk|u# z=J~wY_c6~War1luchdDbGIY`&_NOByOHh z;q z`6OWhZGWz+nA%2GP^eI1o z^L!FF&nNLKwNIh^D9y3!l~=@XQr-~%tn%#BG9UE$p7MhDuhE~lc|M7o=kqhZzj;21 zo9C0bc|M7o=ks5EfAf42H_s<=^L!Hj7CfJezQ1`siJRw>xOqN_o9FYhzQ1`siJRw> zxOqN_o9FX$zQ1`siJRw>xOqN_o9FZMzW@D?l>J{2KSFs$`~>9<@pF}DU-11mqd)Ny z{fWN@{fWO5{lDn@e;oaZe-r(Qo9C1Gfk(+YWMA_AAEUe={zT;!@wLhu;#-tw|8{B` zJ=&+;)Sr<9^X-35dW3(inw_`iJRy1E7BkD8!^u( zar1llel?4iJRw>xOqOm>E~~r zPvYkJByOHh;^z4zZk|u#=J_OUo=@WD`TTc3fAf42H_s<=^L#3Y&-0MSY5q6TAKW~j z#Le^hEnjb*&;Rh;JfFnP^Z9LGZ=O%$=K1`NuQ$)s;z=aaa3 zK7Z}&&GY#i&&~5m+&rImOZ`#${hoO~iJRw>xOqO)X(HP0rRY!mD)c9Ap3eh( z|C`aD_*c-M`0eOV+&rK6_x;WDN!&c2#Le?b+&rHTkp5M-OP6>)iJRy1fxg~6p9gww zo=@WD`FxPCH_s<=^L&o^dh>i9&^4|P|wZtN!&c25A*fr`8?Ef^L!FF&*x#j-aMbg&GUJ&^3dgy-h@ByOJ1 zBYnMjK8c&>^C(|$p3g^nZk|u#=J|Y#uQ$)^H^VR zo=@WD`6O=M#LNmuP)O{5s|7L|^|N^U2Z&KQEZ)lel?4iJRw>xOqNv z-`_l+#Le?b+&rJe&GUJ(?{A(@;^z4zZk|u#=J{Oh`KfAf42H_s<=^L!FF&*$mBzj;21o9C0b zc|M7o=kpBT-#nkh&GSjzJfFnP^LeK4Z=O%$`{$B}6>;-?5?`hD*;&5-l=6c3CiEw6 zo=@V}p#M{R|6S-${8scQZk|u#ccK4NeSh1BB zByOHh;^z4zZk|u#=J_OUo=@WD`Fxt6zj;21o9C0bc|M7o=aaa3K8c&>lel?4iJRy1 zY(IbVd=fX$Cvo$95;xB$ar1l$%axbJuUB3X|FH6!_~`8!-TShLkA599 z;^|yJ|NFF0M?51w`mue)bK;|Kn@7ALKH9D$UJ{>CUJ-wx@|yUol{duSp*)?}e$qaW zKOa+`5&wqrTsi)K@H>^4#Le?b+&rJ>%X!hqJfFnP^GV!1pTy1cxz_hL&nI#7d=fX$ zCvo$9KHc{>&nNK*!jnndJfFnP^Z5+l-#nkhx1v9B^L!FF&*w9JfAf42|1|m&H_s<= z^L$?5`j4kpA#W zndehE>do^>_2&6h-riQ-!#tnL4_0oT&(Rme_JMlyd@4u1c|MgNt$ob%sr&%t=J}+0 z^L%cU^P=87pUUCkG|%TnQoly~o99zG>do`H+1H!rQ#tC*^Z8s~Z=TQR3CH@F=TkY> z$2_0PbM}00kv`bx=K0(zywvM5&!_TC`61^>&ezJZPnIiRRKBm)o99zGybb30oR#y! z<7b{v<=Fq``P?S;*#GAFRF3sA&*z-fV|~o?sT}p@`J{UDd@9F%YMxK!$P@E?K3~q8 z>pGa{Q#sbnJfBo=o=>Vb&nMNJ=W|}pi~i>MR6eEiG0&%R>ZvUdGeeB)+nbIpdu1}VH_(99F zbZFW{eO@{ua(w+-+49kPzHwXLmA>#?8F7K~i%t~&1P!K3 zl^1%wcy*5L=6_haf!6KE-TWVz^8KWbbZ=iT?Q_h1egC($d@LOn*8lxl|HzxA{>IS; zZyz_c{GhhJ((~>wINjRS>ysrPzBa&j5Ac1TIa<#{(;QvbSj$K2_N80$t~=K4C0(EU zr%m?}-W?qMv3`DG`@)Wm8<(w5)6-8m<-F-NXPv)xdOB^GnV-36^Y(?A`RRqN)9bfv zo1NL-R&3ZdebJU}7p~hfy4mdX^V`->Uo2()h zGTBad%Z`QV?F;MX7f#-=Vg8iaGv>GLnA_eKObi~G?2gRt*t&Z5tl6a_rq7#Lj$^0% zKOLLAhjFV;K+n@QTr{(NYG!`*=mI8|o{f*}>BmR*bfei%w*6M(Of>s@J2o`?cHF>B zTt_#@(Gly%NA`3Z&3^TgS8M60c?3!dOq7%OSE(hVHF=Tq-l?=W2EwrA0Y3))kRGG=n+anmz% zn^&dFX6Co;dA4=kC2Q84X9q`>D<>wGRN6DCw5RJg&#ym!)8>r}-6H?~i)sy{;G}(X3<^8AZZ{5CR zed|Bj-(#}B$@2b*tmwbUmHnqYuK$!1{kyyoD&0! zwY;f`;!O^`Op^mkynJA9 zObl$ii4*$Qc=^CfGK#Cdjj()G|K)bwSM-Kcpj}o3+J#e~T{s0Q;S_NfP7(K?u)B~@ z++B8{5>65K_mFT3)e=q-_n%V2DO7ixGf>(40n3XUaeosDr%)~TPr$MP1D5?Au!K{< zvg-quTPBC9 z!YN=4r@%FwA|F^{4X04A;S{-qQ{Wm-fonJguHh7T7fvgC!zs`%D+2ApDbOyQ0+n!z zxC^I<`%l;fODOJ=B2WpZi2Hj;IE88nr-=JcDd7~VyIcuW!YN?6-y-gBBHkX$syQ~Pb z3#UN4a0*nyDdH}iBJMw77c8N;ONu}xoFeY;A>kCNC7dGeKc$3IsP1wlPzk4i<$jB} zzlnrXsFwRDU5eY zI7L3NxEfBOUc)K!ffbW*3gr?`0c$t~uHh8pufyI(= z3gr?`0ZTXqtl<>-z~X8+g?bIA$Ol$T!YPzXI0dZX6u5>{CTg3fMB%DIE+&=+JI0Y=>6tIL-z!FXY%dHl$gj2v0P65lE z6R?I;MrPLU6+n1oX(mv9PL!zpkLr^pAESi>pQ zYdA$N;S{)rQ{Wm-fonJg-i6Z%z2OvSmlc6_;S^{WPJv1|Mcjo`#Qi7if+ZApNfD@o zQ^fr}B%DIEgj2-*r<8CC)m^RxD&Z8c+;0*0H<54()pGv?Ea4Qegj2v0P610e1uVB( zz!FXYOE?8AcTT_>PLU5RmV{F%mv9PL!YN=4r^p8uSHmgPYdA$duwoKUpxr9^T8cu<0I0dfZ6nGa-6XU(<6mgdp5qJ3%aTib#OG5SVE~0w) zz*)P1iRE2nL@Y7Y!w1?(P{n#lsvbUYUdgIh-{nlil2(z+9oWMM`bc2Kdbz10m&l4- zGAnWkt;i*{BA1&ma>=d8CAcD&+bVL6uAT!!D<|O<2S|EFF7Xw)=2y>wp|#coiz76` zdJYUNpM+Q(ASo8P##lU{Io5MvXvH)jPN@+=-0S~<%?E$x!UzX7zR-JKt3mvMo1cXyy&@CDl4l7V(<7^uWj#69mJZD%a$ z5UcyIZ=(MK``&Rn>fL{dl7r!ta#uy%eLab|erj^ zg=)D~Bkq4GB`ia=WLdxxp%M45i3DG$mh_3Ze}Z!RhiVPU$cOgTz^klxci(;dZ5yiPTepb& zms-LpR`;J$!YNcsI7Qt5iph2j)pA!w+&>f9lc8F|DPRewi2K(>!YNcsI7Qq)K?$c& zt>F~8gj3`Lud;?ytRGlL4X0Qy;S{-qQ{Wm-kxMv5KJaR5IK_Gir@%FwA|KcY8cw0U zyL49YeKj*NFRvC7dE3SOWbKGS*8t1+L)~`Oy9vc(pa0 zVjl^oz%`sAAJ_;QPNBZrss24y2&X{14H;+`PJwo>cA#B21=?+xK)Y}XRKh9ZE}SCn zzdQ-2Slxet5>BzY{}LsfLbYt$i2ElfnKJY4QIK_Gir^pAE zK*K54OE?9t;S~AM{u+3-HJoA}38%m{oFX6C2pUeIzT2tvdq1R8#NC#RxXY)AyH`Bo zE}fr+yDmm3tKX9p%R6X?r7b{s6>t!4F@PT>CcIv4gIIjd& zte3><;REN@UljUxw6q&UwsGtuw_6V%czI>J#`@kjGPLKF+cwtgZ@R)fCA(t1gjWwA zm}l=h0NVLze#J)ky$483M5TId-uv>NyoVm!ITSZt*^)^lKR=M8NEjk2Cr zl4bFLhFQ;nq3xk@){a;rj~NM}R`1vdbB<^hhK^6_FU5wAuj+zl`MvaCky;Pcw(YAs z85Ny-#l4JOc@JY(-pknI?qTe4_cHeQdl-BC;8=kA}lPV9txS?%`CH1}}s z;n8x>42-sey)*B0QF6zIQ!hDo&trS;MjJbDH+B{(`3+m|dG)tbL+6#3qyM}(HZ&H0 zUEF(K{mb&fvE96S62z`&AVF+BdJ<&Gv3ox6z}Rk11L@QDmi6c#i(`Z5)gOU}*J>aI zY(07sWXZ9i^UA#X$Ku$~So>CSc+x{DU^DAWfu#qB&Mk8r7;Oi)Y?+^I|I@FVBV{7K zb|!yl_2`S-z_C5UMnX8(amlc7Y|pTfp>AkcIHto!YtZ@)dx!NMTQY2DlHIaW%RR%w z{BdpVu=d#8=zD;XKXU2!Af4uE=*Wt}F)Ig;95;C6_`xHq29KODc%XbVquxwL8*#t=*B{YweEoUQu^M_WK?!=mfN&?H$lW6fjjfJ#`wShDe%&mlN7u@SMeMOIwv;0&Yb$4+nP1mB zVW&@i#s!nUq)QVjSaSWNUB?G%0C4Gv+h*O9 z>Gs(C%$9Yd0s7h8mW8yeTfJoqGncfVk0iV8v2EQhSvIptwYr-&v}5s1Mu=ZmM&R@3 zu5ZiQ?(4R0Uf-U2TidYxV_A0=>DaykX<4iL-P$UA+tQf}cU;sCUN_s?ZSi#T?8a^Q zeBFf?&d*$oXInPU&fxQQz05%T|Mkhk+tDNCGJM;s_Ria9DXmff?|TQ^KUB|*r)lJ2 zzi;~=#;@HwZ=a>KRzcQ1+w%wf)F2b>CrigK?45Uq7Igek-LpM^@c2{PLqEIw?rk{# zHGAh>@ihuC|NC?_C3vLuX*#?8RYh5$DIhbCBK3_;yJ5_(uEZ=%vPZ{QCw+>-a^ze(X=o8~fn9 z?bxN~zw64GuJ2t}{@)T?F00o4Rg${=oV1@lG0#e`jEmj_22#Ue5H3cKoOp zuD?_t{uUj7^qy09pJnuX^bb*tdX5vvc>MbpIE?e-<0xP8Ici29U#sWey%e^ebM3kQR`~PYjH|V!4c8d~Dao{^0RX)bYH2&v~|t zf64_mwEG0(mwvSDSW -#include -#define NB_Z 51 -void nrLDPC_bnProcPc_BG1_generator_AVX2(uint16_t,int); -void nrLDPC_bnProcPc_BG2_generator_AVX2(uint16_t,int); -void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t,int); -void nrLDPC_bnProc_BG2_generator_AVX2(uint16_t,int); +#include +#include +#define NB_R 3 +void nrLDPC_bnProc_BG1_generator_AVX2(int); +void nrLDPC_bnProc_BG2_generator_AVX2(int); +void nrLDPC_bnProcPc_BG1_generator_AVX2(int); +void nrLDPC_bnProcPc_BG2_generator_AVX2(int); int main() { - uint16_t Z[NB_Z]={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,20,22,24,26,28,30,32,36,40,44,48,52,56,60,64,72,80,88,96,104,112,120,128,144,160,176,192,208,224,240,256,288,320,352,384}; - - for(int i=0; ilpz#`4yj>iqy(f(I+gD3kZu?dh6d@BMvyKE326|dr9zcWL_gafO8VE>o{cQw5JIoGnTjXo$yF1=fH>n?af5?;y z_&TqdH4j@V(u~QmR_}Opw;}A#I`|)h5K~< zqGI4t)^@|qM$KKFTs_Yv9n;@;){3@{`9~9$w-L8yTk^p0!h=b_qw@3G0+p z4gPP~(jxt~eYZ|(_z`A0Pkmezy|EwnJ93KO%yha(%R-;uw_h9{jki^3SHbXGlY9}q zYA&TF0uJ^9RfmVxRm*n2q>E}o55?C4{k=}n1db@S? z7^u`*RPdV1we(!iHgo)nfEPz;scH+w`e29>70$C9@h$c4I*VZf+rssPWz1u8mvNFC zKH-LbQ(JCQKT1DgfAfyd%X4A^g{PIR>9yYxzTPtVRKM(doV6^8QmO}hxtxQS?lJwK zMyq~0KseZnW5CD3bv&?sAu8FREIKV#IgMr5%U#o_-L4TckOKE!)omryv~?#YGqEvB zq*#*zYp9-Osn@kIJ+Nk`!OpT!WsGW~>ySd*4wXL z1HAB>_bl>qc?OK4G2yw&;W0NGBN%D8viKSYiolGg&(1_k+6{7wG&0PerX^PXpq5zR z*;Gsq_dmEYoTU2|k^b}76S#xVhU!r3YKrGzLy6YZamMI4(XG1W#z?mHs8fYC289oa z`*=l}`kSUx#~&_jVysDSLM#r5F%|29y(iI2Pr_3YujTJ@4c@b?K8zD%er&>vTK}Pi z2z838Q{PWt@+=md1;5ZVd?TYFrX8lu{D!TEXr^W{EDhcCHTFX?GCiCBK|9ilYt{+#l>UXQ0)bNZTun!387{n)=JH$|*2?XAE~BHk zUu)POvf^gwXNq3WIvhN2vVZ&YrsXq(6ude)Dau5U8^~Tx3Kl#6K%R60;-x}=_4a6LWxdEr zAd7Svdg4_i=GjIeT406NulgIKcr#KTVsF8rbvnxMmAxbLeAUXw3vu6j5I}oZ#p_Hj zXtFBRUSD;MqQj5oZD!w0Cp9g0Bcw{Pu~r~5n;Cl!nKw#B+Yf4SXTb~KJN;jIuxkUNt`^UYmD(s8`9J*icMbf6r zPrh(4j4OW6T-LVQ4-u;-ZW2kUpI$Utm{R*0y=XK|@GW7X`)K7_==bnKlZ>*vLLr|3 zVT#j(V2Vi1q|8Y))cfT7W_V~TBD{G$6XhePe`uF-bJjQ;SpGHq+>a(#sP3p7NvMm`#-bGg5UB7BwR|VeP-(NcUtJ)6< zxe2X3e?h5z5Eb|}*Avf_b!^4Z%)~!HsPA)%=21ijIDEy7r-dHj@7e2<<(Ugz^}AyOLgAM26<0{G~;u5&1CAPmHca_=ANaZg}4G{Xh@t%}+ z{>M(EtgNRPyo=V>#q>fB@Pt>qCmoFYxl+V}FH&2%Gh7o>wBqg7t72wq?jrwz&TzlM z@B})VxNx$9)gRJl6Bb|Gnf05b@iT7|5ajlaa_XW5}w9QZuatw3Yxe8^3H`Dav)$L?=c9{jn%FH*@K~TR) zXaXJJOz{I^k47w>dH{Fh6E55m2934YnT;3k=(oBkw~vB)6zynZ+@Rc@g+ZU>QIF&9 zU|dXM+{rO)%qq!1l`+rk-!gQB6>rSGR)9W1CgE_}m_>)bLx@9Z#01V*)68idb@xM7 zEeuB}_hUJkJmgo2syDx z16(<8l5LVLPz$XGO)ivBWybh=c1nvmeai@CR8b0pCfd4o$o@t?iV+ncHS{v+t&?TT z1jYPN;3j`^=F~YcC^LJulTj?}TbwLA)>*hR(RRvI36Mki2v7r*igMV74WyDk3{L#a znj9z;%`%)wK9=fvuZPuz3(8^5lO6}#aB0`4-(0MgF@BX7*0xb7X4TN1 zCHhV{369a`DUcQxO@&DDR|{uiHTgtfZWGPl_0U=1txyR|8c8@{8W`FrG_q@G8e(cU?PK_KE4`SY;h{-ap|4!(T5KFK!Rs-55yDYpb^KT0ph&~!i2{$@c8C)t8i#^ z?}hH|T}o0!Vd8mm&~zd|GzcT{pud5f%qR@*+WE}$<*yCzG;P$m0NrMf0O?`?*f%Ty z9smfK!T`uKAkxOiV8s?Tk{%vB`JbXraf=x`I}oeX2FgK!onkAwqStAlhgujhSgBtU zCa)9m+E7GlC&LUC77GM&dZ7=P(4nHDBmKz>7T1&kv+>e_ipvv#>JE@@6G#DQ1HOCB zY=G_@ z1HEI~oN%tu@tmnErF0aKvD&Pl;yDFamjXI^x)>@f1!x3Dzk7GjQy`Xzc}ri9Z_2D2 z$!S)7R|6PbIsedm7ax4MlSlP(27(tJb2~6$* zcq(9kI5N{~Y5*kT#8{FMl$w}?oDF#xvnRf(Gd{}wCho%u1QmgHkMeNQ)e&>eQJN&j z`nAV>pQaEOL<0Qj^RM?Y`;Kg@_t6urJ~wY++4-UHz<99uEJ+1S#A zjF3O|A*bGV8|+I;;(j2BvHS-CvPdqHhxFkD!m-YO$e&!@sl#1&&LV~uys?~fl>+lT79!`x~8=8t2swNnC)o?Y3eJZCH!B( z?_4Nw;@f#Se-2KMET^^qq|8ja{GJjo_Hs%pL5GE%h%Mal`L~9zcf*(ZBdsNbjWv`j z@VH}kD9yKk^)|5<-b3fxz{drwdW$cw@A%;-Lw(X88=P7jMb-kg(*5mGo=TGseGp_^ zL07Z`8dJRuxvzOtpjwMvYrAa$lS9+7R?o6n5#+{`g z;2&FeF))RL#m1UyEn)}#_ z4P^^@6HHsw6&{s(^Gv_fWgMBFub(aAl~Q)@1DS zrGU{gK_U;;Z8`67Exn<+p@*#D&iJ6#zC%@SG456_TM<UDRS!2kcySqPb#6`5=n> z9{qJaPPJNrj?T0ai~bMIk?$wT=&hu{%VN}o&oEe1B6QaBYEzzEMJ`e|7^TDiuZGM2 zTf=h7?qki&kA-S}5c&xwJ%7BC>NejsM>GT-vAR7~sx5T=G}&dpcV=y}y=}Su2c#;W zvS&5FQPc}>wuS6@zUcWnFZJrJppYP1Z|NKd(wesS`_@oxa}~zU0tIj;Q3lr4{}QI( zzl53fk1!wi{eOkI7B&A>)(7RV6KFHyf5C2`&$7QQ8o1>(&{(^E6e(OZSMvsbpRl}D zjJfti1idhwk>?fLmOK?!ty^cP?WB50fo9xU5rXMhpDV3G{0NOF`nBs%i5&f5GCwwk69y^5WOUZ13_yc)Zbg+W}WH3)Dni)2a{HY`tU zJXhvImfN%gHiHauLIyQsS2AyjUAG23oP7)A^hQDIq%$xPaRmWz(xEEtoJgwIdFQwI zwvD$SB`|^w!sCk!D=K>qbL*(VYf(@P{{eDj|m8Poa?W1#+_8hK&*tsx0P`gQ~)X1dNmhrqyKkNE&#EwVb(#w-SQg~I$uWI zl=veDj;M3M#}ufdD5y)a|EtjdvEnKu*z4a`%tjgp$qsE~;yHO(mpnQmP3#^ikZW87 z#{Fc(12<|X3@I-9e~as%`IAHcJAZcQL68q500Q#Jn)(=|VPueoNdSf=DD z9{xx%;Dm$jUeOMsrabgNCJf*v8>ESxIOG!0hz9_jHy5BzoUY0_{SUrOY08UuJ58pL0Xk__ zNOm{!5I6lH_6DVrFY{8baH3)w*ITbpPk<&R`HIey3|kz$(fL(B*J<*Gv4!yd?floS zInF`F*%#OGqRl=;@}I+A<@AT&7`UEpd>npw^lF~dkFLjEFl^pS^=%ZZt4CX_{-m)n zd-VV)E6V=!1)p`T!w>-(R%kWdPhDfk1_Wm^gFR-);P4pnavgr9AungF`5$^t9u$V#rAF#CF zqOJ3hh6UK0v?Q^XbZ`W;3h{94r?Ar2zAb45*J>EB=seZaGkWWFo3Y=N?xn))U?|l2 zK)q~;5PyH$?-S^5zp&c)fFosCU+;8s8*sLo79B08xa{fZ*Lyp}1)o7(isI2Qpe-bc zOh0F9bEx=EDgp<;u64g#rJMWg`|RiARL4Z3a1n=g{*_OZ$LUJV_4Uc!9O3l8PUKyk z1K1L{RP$or%R(8u?vx|hF4irUgU@ZAr8088?5PZm(cGFP^y+9#*F5NsszA(C@n$dD z1Wwqos=1c38}acOmT@jmXl}yG<{21zX`z{Dvp9>=aYs## zM1D%;e1xgCnqML}Ww;(pD($Dg%Vg(>6ud!h5%RDs!EFATB??vz{KqVuGC?jXbOG&8 zzdiC<)>A0u{`RbqK|Nv8f^~rZ?p9GJ-ajjM`NqL#pW#cdlmUMi@6WmJ%Dq3kdgtzv zp^D%?o;wE5vtukbd%NDKi6Mc^YNI?*cj6 z!a#6aEP>2>IZzNfDy=)}9Ge_k-@m@+d`YG}Gp9AC%4hv@sExJBj_cbq2kCjK^Ex5r zfKTVcs}P61^Wk&40OioG1&C&1^I(kBWG2x=m#5hSfw77=+CA5D*{+I{r3ZcnVdRIW zs)7VmyWyHitL48T>A1NgAsou@sx#(X3O)-SU4It)=Hbhqea4(nWUFD%9p0k+=~1}Z zA#6l8jGUsO`Bl0;$P1+U(`xp>KW z=0VCh~brnnk{?h+U7J zLt@_#2l~H|uQ;8TG(nV$i6{)S%5<5VJ$xDs?|;;?+v%&9H4ae=hAk9}T*V)JZjo4) zh&re1VQwbkD$CFX&jQ^83+n-f`Y^^Nd}hpx6*o z!!QOqeLMA+Yq+>!a!bBOX<7#*ut-I}G%28zeMg9iH(AiHL}gdecqAa8?TWwXEsN&f zW}Lr7>7>@4MQ$?I%~OSJ>mmk)c)=poGd5^~EJ?noCd<@N?)tmepPo+*ir(X2P{IVq zB(tm3h9Y=U;BOzNT)*wl$l(tt)+kC7%Ros{(J!*Cg0LP$FUYnfd-TfqY)E zhG50V0%o4*uu?<>sG2&e%}u)awFQ$azI4uSJHcQ!GDXSlZo~{W_q1kwshNaKz47DV z7-un{>l*X+!6mN9?9xWL7DA`Si6$>oLIcsYEHOb<&cP*GqWSKjEZtnClMKR7 zf5$|}fLBn#{R38k$g_Eou}zqQN&XT4O-OxyY0gW+eF0RA7vpYHPbJ54Wj1J(ncd_0 zJhDsPvJgA;;#$$n0cl_+<=8Yz1+&(e3}qg%1Rp;|@si~Sli6^aJ<1K?TzjOTh@jT*JsHJ`GWFLD0NH zm^?0sxt55i`+hBvD3_W9!{b(d1=f^j5*$>jKg(P`(gLeS}p1nJ`>Jj+ToSl?4x zL{JWkmw|+UrCI_M;KC_QvRny<)fWRiyyO;9Xjo*ZSY8~{n&^a*Wl0^3l=^wg6fp)# zpH4fdzFSW6_39A1PEaq3jFHd7=H83tgsAKw%i_&xB*tgUx~+wJxZcbz^sZmU7h{*5 zsGWzL_w)lF#mJ7+ePD&eek_`vBhP+=%;#?J7CHN8@e1E>L9H=;yUGLa{F+3Ui!W8( z;s5H_x90{&%DdVAHtb?oTZ#Xij`26)e16HT^vOIu;A*4z3t0PGYb)<;CGKbsFPZNL zZk@)>$mu`TP)G1IgTGJt(|&B$=)Q5Fd3c-QM`Zhcvq&*tCF}bVAZ}Dwasc;^HC%IIXAPh z^=bb3=iJQf*UO?BkHeKc_iZW+Fzb7lIV~6Wzx{eype=J>hiE*fK$}U7 z52~ZP@R<;8SCLKaWcRt{Gh%u!o`ydsVG3(i#mGke5ZS0>JK2BlKRiFjTJDkbHjJFd zhPuQkK5dDb(N9QJ^f;}n-Bk;Pzpr8$(;ne_lWw>>{LVh?ut4@ozp3mdU8|CVZMtlb zA(f&J5z)HYi{SngD&=g(&pvQFqxPpW zuiir>fS6Gw3+KDf~!v1 zh3%8!MQNJrc+^tc=X%gpj*8YWqYx=QM-O(~W1 zKo4E_l<~{yK9o;nu5iP+Tq19)f{{KSmT&TW5~y62t7zW z5^(Yf^pGuHGM0?R+ue=~;At{l7T**3Y>{ALr%*&^@OwtibN}j$)h@)qgyzFL@b-*2 z@c{yoZBg2m#8z}$Hn6BzxAx@~I+Yd8V1zI_B+^R^9Q}_(1Kwy+;LCvs{uBo@yt1}R76STX>v43K5O?E4 zv!)q~hBqOErXk4x__fFRgK@N$LkwD)~(e9;wC0}AZIGGcz zPlk<_&`+_CAqxGLt;^xEy&p$ZGG#jKiCXUytGw^PXE2uIN3x9LmRj<8L)JIDbqh=q zQJh^k720?VK*L{JX`0el+%0)S`$ZXtj$c-0ehg3bV{`XnThWYolaY5ZL#hU#Vc6Vo zXNksYs?fOC77eSxIIF>AOx)d%@&_PQa*eCOU><3e#3UVTI}*+T!d7gs39^)i!D+TQ z8gn|*FPs$0*h&X^Bb#2>eOMkfnGUersl3#4WTSn>X8PDSR!4H@ve8#rLj*$!PkG?? z^GxTyQ~81+yLC*mHOv>|mc0a$Y1BOvrK0E;`w41W5ZX`&<5yTs#8wTUP#jPw8Sn)d zi+1=HFpMcBP#J;zmY|SD*2aZ+iLm%C96}1(kkkaCIe%8am;8+5eJtvc`FJwig&yuZDvqi4-`orDt3(MV!HV6_AF2wBYWKE zoZu3T5Vz)F{;d7B??4~TEzJXY-K1ptKi5s}igXMAY#D1YTaG*yDH&IYZ8^uiGX~+p}MdRuAJyssnG}h`zuil7|s^a2u&-2h=2sX8ghP zoAIsN?V$kt=tR}tz?RPu{&VnCzk!j}h~re%U0c9l|+huwfff+nGRJEQX> zE>-Wf!OOsb8vA)h5&VmuPkD@AL~p*pIDrWS2<{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_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c index 77ddbb6543..05cb7b5a95 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c @@ -1,28 +1,26 @@ +#include #include -#include #include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" - -void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) +void nrLDPC_cnProc_BG1_generator_AVX2(int R) { const char *ratestr[3]={"13","23","89"}; if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} -// system("mkdir -p ldpc_gen_files/avx2"); + // system("mkdir -p ../ldpc_gen_files"); char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z%d_R%s_AVX2.c",Z,ratestr[R]); + sprintf(fname,"../ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R%s_AVX2.h",ratestr[R]); FILE *fd=fopen(fname,"w"); if (fd == NULL) {printf("Cannot create \n");abort();} fprintf(fd,"#include \n"); fprintf(fd,"#include \n"); - fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); + + fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) {\n",ratestr[R]); const uint8_t* lut_numCnInCnGroups; const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; @@ -32,11 +30,13 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} + + //__m256i* p_cnProcBuf; //__m256i* p_cnProcBufRes; // Number of CNs in Groups - uint32_t M; + //uint32_t M; uint32_t j; uint32_t k; // Offset to each bit within a group in terms of 32 Byte @@ -65,11 +65,13 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) fprintf(fd," ones = _mm256_set1_epi8((char)1);\n"); fprintf(fd," maxLLR = _mm256_set1_epi8((char)127);\n"); + fprintf(fd," uint32_t M;\n"); + if (lut_numCnInCnGroups[0] > 0) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[0] ); // Set the offset to each bit within a group in terms of 32 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>5; @@ -90,7 +92,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // for (i=0; i>5)+lut_idxCnProcG3[j][0]); @@ -115,32 +117,6 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); // p_cnProcBufResBit++; fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)); - - // Abs and sign of 32 CNs (first BN) - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][0]+1); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - // 32 CNs of second BN - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]+1); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)+1); - fprintf(fd," }\n"); } } @@ -155,7 +131,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[1] ); // Set the offset to each bit within a group in terms of 32 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>5; @@ -175,7 +151,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // Loop over CNs // for (i=0; i>5)+lut_idxCnProcG4[j][0]); @@ -220,7 +196,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[2] ); // Set the offset to each bit within a group in terms of 32 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>5; @@ -240,7 +216,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // Loop over CNs // for (i=0; i>5)+lut_idxCnProcG5[j][0]); @@ -285,7 +261,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; + fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[3] ); // Set the offset to each bit within a group in terms of 32 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>5; @@ -305,7 +281,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // Loop over CNs // for (i=0; i>5)+lut_idxCnProcG6[j][0]); @@ -353,7 +329,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; + fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[4] ); // Set the offset to each bit within a group in terms of 32 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>5; @@ -373,7 +349,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // Loop over CNs // for (i=0; i>5)+lut_idxCnProcG7[j][0]); @@ -422,7 +398,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; + fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[5] ); // Set the offset to each bit within a group in terms of 32 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>5; @@ -442,7 +418,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // Loop over CNs // for (i=0; i>5)+lut_idxCnProcG8[j][0]); @@ -492,8 +468,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[6]*Z + 31)>>5; - + fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[6] ); // Set the offset to each bit within a group in terms of 32 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>5; @@ -512,7 +487,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // Loop over CNs // for (i=0; i>5)+lut_idxCnProcG9[j][0]); @@ -562,7 +537,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[7]*Z + 31)>>5; + fprintf(fd, " M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[7] ); // Set the offset to each bit within a group in terms of 32 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>5; @@ -582,7 +557,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // Loop over CNs // for (i=0; i>5)+lut_idxCnProcG10[j][0]); @@ -635,7 +610,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[8]*Z + 31)>>5; + fprintf(fd, " M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[8] ); // Set the offset to each bit within a group in terms of 32 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>5; @@ -655,7 +630,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // Loop over CNs // for (i=0; i>5)+lut_idxCnProcG19[j][0]); @@ -690,3 +665,4 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) fprintf(fd,"}\n"); fclose(fd); }//end of the function nrLDPC_cnProc_BG1 + diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c index 76db309f2f..8669289212 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c @@ -5,7 +5,7 @@ #include "../../nrLDPC_bnProc.h" -void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) +void nrLDPC_cnProc_BG2_generator_AVX2(int R) { const char *ratestr[3]={"15","13","23"}; @@ -15,13 +15,13 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) // system("mkdir -p ldpc_gen_files/avx2"); char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z%d_R%s_AVX2.c",Z,ratestr[R]); + sprintf(fname,"../ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R%s_AVX2.h",ratestr[R]); FILE *fd=fopen(fname,"w"); if (fd == NULL) {printf("Cannot create \n");abort();} fprintf(fd,"#include \n"); fprintf(fd,"#include \n"); - fprintf(fd,"void nrLDPC_cnProc_BG2_Z%d_R%s_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); + fprintf(fd,"static inline void nrLDPC_cnProc_BG2_R%s_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) {\n",ratestr[R]); const uint8_t* lut_numCnInCnGroups; const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG2; @@ -33,7 +33,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) // Number of CNs in Groups - uint32_t M; + //uint32_t M; uint32_t j; uint32_t k; // Offset to each bit within a group in terms of 32 byte @@ -54,12 +54,14 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) fprintf(fd," __m256i ymm0, min, sgn,ones,maxLLR;\n"); fprintf(fd," ones = _mm256_set1_epi8((char)1);\n"); fprintf(fd," maxLLR = _mm256_set1_epi8((char)127);\n"); + fprintf(fd," uint32_t M;\n"); + if (lut_numCnInCnGroups[0] > 0) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[0] ); // Set the offset to each bit within a group in terms of 32 byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>5; @@ -69,7 +71,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) for (j=0; j<3; j++) { - fprintf(fd," for (int i=0;i<%d;i+=2) {\n",M); + fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG3[j][0]); @@ -102,24 +104,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); // min = _mm256_abs_epi8(ymm0); fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - // 32 CNs of second BN - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]+1); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)+1); - + fprintf(fd," }\n"); } } @@ -135,7 +120,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[1] ); // Set the offset to each bit within a group in terms of 32 byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>5; @@ -147,7 +132,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) // Loop over CNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG4[j][0]); @@ -194,8 +179,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; - + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[2] ); // Set the offset to each bit within a group in terms of 32 byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>5; @@ -204,7 +188,8 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) for (j=0; j<5; j++) { - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + + fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG5[j][0]); @@ -248,7 +233,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; + fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[3] ); // Set the offset to each bit within a group in terms of 32 byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>5; @@ -261,7 +246,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) // Loop over CNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG6[j][0]); @@ -313,7 +298,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; + fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[4] ); // Set the offset to each bit within a group in terms of 32 byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>5; @@ -324,7 +309,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) { // Loop over CNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG8[j][0]); @@ -375,7 +360,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; + fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[5] ); // Set the offset to each bit within a group in terms of 32 byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>5; @@ -387,7 +372,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) // Loop over CNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG10[j][0]); @@ -423,3 +408,4 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) fprintf(fd,"}\n"); fclose(fd); }//end of the function nrLDPC_cnProc_BG2 + diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_avx2 b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_avx2 index 5e123291d134e638721f46037c0203266555eafc..1b4ace6f8fee84d84cc2230f02bd393d2020ab13 100755 GIT binary patch delta 14512 zcmb7L3tUvy)<5SAGjqfrMI9B9FnLJ6@ByYMnHqY@vWMdHijk6nX+8$iNHZU} zGbuCi+AZyu<&`Y+nqp??EtS%)rrtzLrS$uxe0F{Ct+meHb7m&_x_5p*&+PSI|GoBJ z>+F5b|D3_v!%D?rWqE>9TTzzywj(ZAqEB3I+3}s>?+r7o_l9LsUns zw0+Av_dNDU*}Jy;Mm8^+@oQzdvfZNBq-RRm)w}cPt6EEEV{At~pZ2`d(2!l7RaKIS z-mHD|jqjRL_?}N*X@+Jrl)15sUqJq%FLo^g_ck22ZYThCv2ZYa+2z@bbN5zdFUcy| zS&p$5RU5pSI1r)-4Ycl20HU)OWz}WRpHn9lhwiEYN8Jy%A>2WB${y)Cg?3-;wirl@ zc5jb{@pj5^*mVV63BMZ@csunzK7;OsXpmKHVGnOM#SQ>&=sh!~3qy>&WCMyqs0U9K zpk$!MB9`FIdOE~5vKfqlX}x{zqN9C>ag9~ z+h_OoF5Xn!_k+vk= zI&ZP%Q7(HuvO3*jd2W|Ip)a(fv4@K-bE|jj_4Z9x<#gE}Mdp_`u@v?SY;UG^>M?Au zyh#bxE|zxJSr>h_IO|I22U#a&V-9*hpE-2631hVj^_$oAf1C4)y=l%%zR7f#%QX`E z*PZ)!L&N;6EAsp~SCr7w3|5g6X?q$SpR$;cxrt|Fs>hA&`BidbWj+2Il-0$m;#_7O z%Zz@sG~>)VV&Id%v1=h+{bxG-H*==5elus9_Zyq)%xL15)i-RHGtwyA^&40=8Y?(SLdUABm0iMG$%*I9`dEDGa}zk; ztr30&>SOV*&#R5s$908WZy(Q&hll$ozT~o5qb--s^|9(QOO5F3&$V7Qi(G>qi)!J&=r6NnQIWzul^q;xJ zTBo$J(;CSJ{NCt{yY7(V|7)%Y-Mb?0#jG2^#aDzqv~(2vIy%zU3myNgycoSu@vVln zv1%|Tx$2PJWhWw1H!9$nIX+L|@*C2hLn=jmV_?_Z0EXP0~8aI*Zx`RJ8H0&}bd3g= z|Dbr6%`w6ole<$#>D87%DR?@Di1-=+)D<{ot}Bis1iFH9<+|br#6VXd25Rafh;0Ne z#lT!wOoDb@RvqbzgE+D6tXazpdp$Ob>+mdl5(Yv0F>fDVU6F^b3?Eku?+ILmt~kRb zbj9m@m;0>gtw8gZdFy$&$N}g7(G`Pzw!En;YH+ZR&->_#8@_S-pQmM>G8kA-ou_3! z5!*S~!&g`M^*VKq7JNA}gU-`}uf_IHY;&u~)TTqAdGH)n^6s)C2N>Se#+{?9;hWfN z5%e;p!bZ9pZbC=iIrdEJ@rmbnnF6$eU#V7}g;H7l?*}V=YGZ1J8jQT^ENF#REVoT$ zs9%n*vsf7$Ri--|<&LydVOpML@3-miPhIq*S&sLAr0XG-gZ;?5w{2smdQAF}wQ3UW zRSbR=xb*{8AdD)|`bTdCENo3mQ~On%#l z&>40kF5W+z$Ih5b!gI!4664M=x88v*Z5Qg#KXKa3UOHoDfA%yf2Fkwbw6Pi*RSbUh z7-q0Z*_nzV>>((`v)~F;46V>HXR)04leuqvMTB2f(og<=-;_7LZ+e~t84*yGttZT?96w=J zW!DLIr$d&11v{KDE0S}@XLSovHwgq(3)6t3}i!R|BPaenc4R~W@g{^7)XW=tSULypTFd&S%ED_ z%?hkKiZbd+S`(9xde?;OkJp4`uxaC%!fGK_q8+$=g%v)DyoQcj|E%1RqA3YA<`S{_ z+=cu~wB$%&i9C%jkYz_$Tw1`jrP&d)L>WiS62%>1%hG!LmuJ;svphQvV|gO!s=Dql zW>OE2ll34GXEdP4*g!MD19$IQxXLvB<6=1un+qtJV$vh38d~}+%1--Mtd8w)<)-^y zR1$quxZS5ZeplX@8oWpQUsmp}!)XaMuVJifz!F+@$gIzfLuP%}9b(RI1N`d~e8{X% z${}<4L>^+_HRqR%spsUWIgoc>jjl4RwUvZtjKd1a>>eikWSmA9G2NV zHSvPEbkxR*bMyf4gZzubMNhyJJQe4=1FWWdcmITk9x#hD{eW4V#}BX}=>fOoFTOI1 zbKxtqI5l6f@6vg3-ucQ~9QPj=r~6k}91q>3M?z0tobb@nC+;fKFJZAd8$&>b)pehI z>6Pj8FY47<^`Pb?cqs(MgRdJX@T;?KA$TEfan`Nu^2PmLsE2-A;g;vMn*#7XjeZL@ zz%6C&KS{Xm-^27?t`_BO-O|I^OFH8Bp9bA?HuXgI?%S5^`4`o?Z~wvi^qNvx)oYK{ zF|6IRQGJF#+9_!wE9;vPjzdl>8eNn>)}24OAb;|BH>>Fz%`Wt9-Wq_SZlj74-D4-` zOr0|J{^AM4#!tJ~T?}w)mr+IT$5^v|z1buEHgt6de2|jX2`GbmI3)LAcQ1EByK#w+ zxjVSiQt#>AyECBpVR!nq2p-%czeBH1_qb;{q{{fLtFk3|(DWJ9L|p`s0>{ zhL@oxuT(ZPJOSVHK5S_C5WchbH#8i9?poXb|9!z_+)* zG7Q~PKY-qXf92=cyASubRsl_^l!xnTr9S+k%)&-yC`ZyOhm9PiDAg|ZwH(##USKOy z0-R>(4xcN{GwD0BCAwn_cO6XCaBJy?`w{R)w~d2tK}1*OG@B&JPS_s50MgNJ&|r{3 zqnpYD*xOIVr)61SsE@&`q&@?kEQ)<1JOwM~5l)+rNRa(F7#7w3Eq=+iA*|u4xDY2q z4tjYo5R?%txnO{2BE+!WItqZQrC|Fuwsmb25N&s`-BjxW5o`_Ec01a^S+Gem8VQag zFs4l=BgK)69)*l8M(33k#W?A=j`$lbd;-2e+)6ClpLX-naxk zLWhB?KbV%X_h#!=5Knd>ZYkUB(Z`?})<9^0!}%t19Z2P)y~yr>`~mG%&NJ17@C_# zlev7ZUWMilv&pQP6CRIdD|waSo)f+iPP+W0yoKz|v!#%K!Du*7=Rq7+3MqpxoGIC< zlFg&m0TPl62b_UHqoXX@BLNAS04|&jffj=x*>P=>3ui`PkU@~_4+Ox&r| z-74uHAhW;*3t6+^??A*njm%uhBT3D{!AH`20ctNyA?iXw4F*$x3yNr;I*>eNex5Uc z*^9=J=XF2Nw>a?hx#U^z>!BJjz?~jEFENrn1cS`nK-A5GIv-4Z0jzHOtk1|(H z$<8@Ro_b#oh5rR`QGo#%V;=5n&EkMxw2TU1bkE-bw9j{w3x5+cT`mm&LOOZyr!muW z0h;y~bIF50ka;~ca6aHPuv60CfHCYZ%_U|V!5jgmJ_2LBT<#%Pik~YT7O{Ql7V`A= z^-%a~z$ttSN#BThy>gP6IfD5yn0hV7c=Z~23jI7Cuur)TN6oUlr-#p;I#C{L63MmM zuhUFClWY5tr^e5-8mqK!Bzfw6J+us`0WKzc6eeSTdm%C1z4*AEv0xK*jiA~k-Hx;0 zu!X1h8^F8Vn`{%@Rx)9%pa=+hfE`5zNlW#O*poFry@WJEpXC0WmWLbCl}g z)Yk-6lk~+%{rG*NRtV}MF!iyx2|w9Ko*Lnyos8N3OT>WTc4M|XekG=q!BaQ@CZ%B4 zc(R&D(q~}_cg6ywSyBY`x}c^CDqKj~VqL2G6SJRSwgxk#BMkSrV78L)9i(D1HohbY#fYS-ekn|ud`#%m6vq~^Gf~iO1 zBKxY2JW^(+5uH5KaGZk*$Qrm_dObE^Mugc}==7GJ9VB^lm>`!t*I^jEkeb4Y;z`3G zJ7qhxl_R*SyrM=$8N{`Z5InMN0D;!czzhnqf+&X$))*{HB?kqr;JlB)KF1b!^rRyX|Wg~ zLN0`_85&9|YcwgI5)CDlwW*Bv&gZq8m_v+Q0EGG4XdI}8JR6LKni~Ve%d_BXxrUm{ znk+8?qg+GHWlbTYLc_bJHI=-5=(2W| zpND}ymmDa%tgG!Lx~%IkO%+9#^)J|zR1{s-^_Z}#w#N25V*u7Ao0<%mO~vyVjHegp z9a0JnIR7>kPbtAG1RMcqIT%hPE8jt~Hu^IdIhMQ81WMKh7w1T;(eTvX)Q7dPT)?_OA5x5ht;F=su(8}>qj<-PW27w zVp9tMa&7>wO??)c9w$~P7y&Gf(V332qT-&NM^N3k5m_5KGZL7|Djy$@jKMz7K6u0V}SICv(>!I))0jKa#0Tj3D zyq&}xD44H-siU@4=N}_aj-Lm$t@^^RyupKu02~yai(B=TSBSb?P^W-N;#Ph2 zee!Jf^Psp@%lDC|#?OPNM_qGzMVT-B*YzWs8Y{NqcFd zU~+M*ZrVvqw_u{CB<5kk5*%r3wZ0e~^m%wLRdJ zJr}p?)}F*H5zJ^Xi8)j-xwch5oTV z-X&(HV7>q*WxGo-VK~&b>dqs?EELQS1oJ1sBy9`lU#+@B)CGe29a7i8@DUE4Ef=@y z9(=E+StOV?}Dh=dy7!4+g zTlK37@?`pXP~55qx09#D*CXu%PmqMlor~HuRg%)-pZ9ei5b!gnE$j`&ct5AeBxM!; z8qaulr+}1Y&rNUhILgtWdp(84nHi`m-b21j}J^xE-CYBq<}t2-rTRXN)988a~!$W=HnK%$P*$ zeIUV&@sy@;b2i*CO$-my5y7P)m1}3Ja$JNuT~dM++j2O{%WdiwrEP@zAR4wJ+c|Zu zx>jk+zI^VUh_&jvI`zCd3E7|GL0!kJv$EP$VB7Mz`X==mXtQ*9Q(dPNxYSNcT%aQwsE_KpQFa~+&X1^Ht{6Vb^<2HbN@ zaehHj$Nb5?;n#=4=bCkbld1@v8m<0eJ=ak^o40GOB*^MtltdTS7*eZ%>RL2)0+mzS z?yYdAxCnwqn&nEsa^)Ho#x9>hU2f0q?|_;JbCAc+T~EeZ=^2#>F)a?|hDFAc z;1Y3OD#`W@d!l4Oh&hUq%^K#Whrx8#{#{WdS$+t2fz$%(?@E-O9-TiqX)GY{(G;=I zV&>E8QdVG6m+^3^^64xPn|G&?D)=q7Eo$(PWFi8z7O?#V90>v$x{dQ z%jr9cO>G9m&Bj>`{Q9!{jkav zi-#*7@eVYO6Yy2L4DrMpPuR-zxx{htdK0ej^a;j?6yS@On*wjoaq((X;C(sHUu=3L z;TXjo;x%S7KEOe?w(GK>j`mwaOJCURWj zFTIjD|G^*_A3KN_cp?LQ#zb7at_$HEmT)|e2Xb@#b&i(=;2Stz5rE^X2aI2p${m?J z(C6GCWg3XUzu|ahCR_V|?_5MZ%0vEeBB>)$@Ry>J`%_eqj4(I=F*NVq5(LwB5@eC$#v1`Q> zm)M13*B0^t1TJ>1c-j)Uch@fG9mM7lyLNK`E_Q8A04{cIeE=?Yt$3so@x`vi2P)b% z!Xb98czz1pwc=^X&DV<9wNkcmYQ&lsyVlL|z+Ici@!#!Q@sJa^YfE^Cz+GF*@xWax zo?gV_6}whEtNd=)iboTXf!MX;IV5n`il+`y39)O%Gl#&%t`$!l0vEehN*!pF&N#x0 z%^+hti>C{Lf5Y*Tfo#&s{)#)7ZCSZgf&X!L|Eoz#O*)(U>QeaY1E#E6+DQ$#e>aDP z8wOVhabJf>^hpFfTyjcz>Fl#rBOOBBJR-5g^3pa!4$@yr0Dm`Un?F`pepCK_u(IMl z_WWB(4k0FB4%^@A5-!G)dKhE97tNHvCOL$JfO)6?wTq*ESSGnaK|J@@FBJJh)@MUk y?O)T4KFip=4P6}tGYzZ8&OY1FMe8}wFefv4V^?`I>%K7qjx*u7f_<{F{r>?$9uLp} literal 43488 zcmeHw3w%`7wf8QQ=5&=ma5a7e}sM}P~Oj+ShpsrHa4wHMn0swip7WwNR% zJZA>s$XDMIu7VbGLDQ?19~%_aII0pZQ{gfdPSY;sn5O#p=-B9Qk+QeQ5kQUV0U{!w z_c2Pkv@Q53Qby%l7jYFdzy(c{;VuS_{QRbyPbn@`?Ir7%UUht$s;Zb=UA1)j)XCLl zld7v~o0=yz&zL@G`qZq(x~yD2Zn96h^DexUThjgLM~#ke82%^*NIrGYl(8x9P5bUB zYdiRpC0qZ#b?-fk2&?~4{KnhK&>WILdt?&+*d+WZN%&_c;pZmd7lH4`pM4t&Mj}54 zB;lWtgfDO&N~znYi^lqfs@h1oD6gvz*NXb4NTVoOTGtQ}<)zhijbTx~yrC)rqSQhm zf`%F+B@K~KO-WU)2!$$Y>S`4yB<2+r=FJJ^X60s0BkvuS|8$Mc5&eg8MJm{uPO3^H z=~c2Sj)aQ2M6u~sJR&2Ci@8QT!t2d%;hRGd!b}UF;zn=T7Cyz5-ey?%*7+h};akT` z(89O+xxm8LW1HGoY~ka8&8^tN_nKTGf-RqTg6mRSuk?#xYeyutrv<`b%k!Sy79|vq zPHTY5(Qy&%GsXl^qIxAM9q2xaZQQj~r!G6t#r36Br>;8C!SySt?xgw_t}moIbRL>WTwVuAfbH>VgCHT+gLC9r}S{u1}yk9rA$%sOS7gVcYMQ1l!&Z zwtU#TU{T?oj_9m_2=3YCW3p%UIRVkL9Eyj^Gsff#v3)r@=+fY%dXQktk@R5ON6Q`8 z?A{K0+%bo)d6q;+yEDc_iMO39c;!^3Xrp zb|4=dWK>rWx)->bww|9WNf>OE#FoU-MN@dw(XJXRnQC) z_Xm>8_+VQ>Pq1ZWk7&wx_D=A7{_sy2-HBar9VBhLcF>Hw)4=Z82T4AKtSHfmrf55f zMkI3u>N~rjVY>1wvcIRGJNsPoP@BA99O(k%;Dz#_4as_wSm&sIkgR>g$~1dqOup`s z>89U%dQPGP`TVPxx1&sN&jg_7TF5(FDOQ7>t=|J_?`&-V5uL4c&QOcUS`$c6AM#Yw z$YL@w&TMekj+m&OL|%(%x{2CLqQ6P6j$~{Vt2;7QKZa2V`&7-?+Lf`5BO~M2&$V=n z*>xnftzh4F7w{0Zbr~H-*RF0iv)|rRa0q;HpaS@Hm+m7McZvc_H_wypbgvV;dQ#h- zTUT%>W9#YyI^>M49maDE$g~26Te^!TZ+YH}q0)1XMU-WVHjv1luo>#oB+dN#AF;E7 zv8|ffOSWFOh+-Y;n+wrX2}MB?-7iJf1O0Wu+v*6T&@dx!YF|xDmvr5>!06j6!qTv< zSH@XHwqEfjY)SV@;+F3IGHJ*B)*`ZX%*KQw?wD37vUiNxdR*U(u-HjAPs^*+!LuN0 zDL7=btUTn%SaXLZv}2>{9a0v} zcr|_SCLE!~iOzNNd*l7so3U+m0i6Q&!PPgSvn&nen`fE_;3XE3EzV{@)B+z`R`wzY z=;BP4=^7DJ>NTZu%l-$QE{;5UH?pW~`~OTzX<*cN$Jn&wWrtNcrJY zHO1Ca1 z*bR-b6r1mpDiuCNfun3c3hl({LE#B1e2fA|>nA9%@?TM4938 z;s^??{3Qyk{1pnU{51-!EO7Q&*?|H#k%9s%yHH?d4+^a8MS+zEqQJ`OC~y-#6j*r( z3amT~1y&x80xOR|ft61}psbA|=@rex1b++sJ6Q zh-@RH2_iKz5Ub1Rv?QLwi=+)29jdqbo5KI{_n0Bu6z=2}d32;^tXYa9(k;fO@M;8QB)hY9GpTpBJ_u6W+4@tE=FZlifnat15Xi%wt^W#wCHuo50Q?*T zfJZ<8_yq_6kAeX3OAr8l1p>gYLD0|^5C9$n0pM{E0Dc1kz!M+BOs0DcPsz|$ZAJOcv2P7nZ|1wlg{AOP$F0pK|h0Cs}_@H_|rFMt5h2?D?# z5Hz$G1b`Po0C))mfR{l4cm)K2-+=(|DhL4o27-pVKmhnX2mr5v0PqJ80A2?H;0+J} z-UI>QEs%DcB3f0YsB!s0Y+Mp6$+)CkLh{SfUCGAf=D)!UIWB$nap??>$GF6rs+a~P zwVZfOwM5!TG$>mvBHN&>gh&s{)v-aTyoei=+7V-Kye|pXRu8cJe$p_|dqzxLF%F+G?W`U(eO0~%wy0tXkuH_baV7fEblu#_FsbI9Jcn>Mg zhGJ)H01615*&qm=JW}s$odbf<$p=B`6o4Q`=Yk;Q=7Dr{wo;Pf?atOh5Cq`)Ab?*0 z0(cP!;PXKMzYqlQi$DNh00Q{MAb>9f0sIn>5uL4zKmflK1n|p10KXgr@Wmj2UjYL6 zl^}p$1p@fhAb?*30wIcASo&vlS1n@Etz{4PbmxBP#tI^KZO4I%L?0{HbHfZqVp+}U~~2;eJ00AB?H_)Q>yM?nC;83gcKKmcz60em$G;H@BVVhsr3 z{{jN|S`fh7Kmh+f2;l2L0KXLk@Y_HDza0edJ3!z>I|$(GK>+^&2;e^i0sKx7!0!S9 z{B97ye*^;f1`xpS0qIcFP-@?4h*Bx)Y1Pm^w!60BhfVU zl|^KmhTelH!8D}2uuVhK5t@dqz9g82F0eFcn}+HwBHJ`{DMV@-^7K0mO_Vlh8d8q- zHx2DP5bGG*`rreI)Gc0G{4_+@6FFaPrD@f4_N=d%YB8sI|n@O|_qJ*x%($03-sPz1D zGJ>>f2l`7Ls!W&;4$8DD9gj+@o#-cQSQ0l zWbE1zTgH7s-VTKiGOapLrd2WQ>2iiifYPd{MP#iBWT5ViSQw7D5Jq0L*pG=8kmxrS zQ7o;xmP8w*C}~=i&R<+w6{ESI6^k{k+5!9K8SmZC-C<3tS#pRnt=eM+JSzdVdBJ}X zeE!fPip>j)N%UgEW^@8EK{JajwqiqmE!kRW5yd*Ri$qHkiaZM-n%CEZ*zIuu8fKTg z^HG0YVx}A8dgbR5lc-l-wTNuJ@|%P$>0U|P(s>qhwvH*Yh-@8Gm{7zWlhxM=>KL>2 zxW3u-p&mWEcEl#X+o^;1Lv*aP>V2g63>2|O!H}7WH3|qWn3NKI0&5fy46ZWC3`=IY zWLAIxP$`*Jl6kFUUI)^wuCO|N`W{Avg(a`BeTEI@+kS@44`D;6PdltJ^3(@1M(D;O z{tBzor?|jwWYgAleq6{blO_^{%ug<gXHq(ihkkG=L+d>y~oDa)CAdpzEvE6?uJ) zbLHUsv9oH6DWAm^TTFcpl)Anmg-R1*-x-i2>=kL=;-~HU8W&t#*x-d)htk+=XQ9?vq;)PsVXZ^OYriSfJ|R4W%^4zvO5GMqp~gkZE(uB$wEHb0ThP7?kqX*_$4sHB)^!RsuK7Gm8@52L zu!wAdS_F{_)PyNi4${*lo`Tfc9Z9YcPrVz9y+P=Ixwdm$jM)1NL~0&PnnLxF;*(HB z0QMq`izz+&DcvSe;SdUbO79;=AxecKDDaafN_}z!QRLxbXkt9W(sV>O>kHKY}8nh;F@SQV`Nz zcQX~}hMQCKbg$h@9Jefl(bOFzPuJ81*~~ zjOs*z8{LZnqh3ORQLmuDs8>;7R2K@2dJP3ey^aDm`X&mDdK(2s{Rss|?L&c4e?fs! z-6$~XeH13@k*JfVAI8>Fv7~9Ak=XxQ>h5G~shU5TBhi*Lm1`It16WVh_dgO(lV%c) z#0xAU+eplYNRPx@Vk5C{-c+rp@K~H5XHZ-w8;ke;F&6%|vAD}3vW>-uAW~xyBO`(d zQ7>*{iaZuqN*gp56K751#$tx0McY`M$}RG83VGUM9FcA@wwwymSR4RFnZ?8{FJ&>2 z_gYBmGK-14*CN#FWfl{8ugg$F-ixxBSj{g60f4fY09*+I0A(=&xEcfi%3=br1Ox!e zVxl2-NMVY)-wNHi>;u!wBK@*arvuv{G*mWlI-(h<7PvHFtW zKF4Wk&^9nLEuz?X=r}+SI!+LTP6|kKXKN}*duOW)1R>`J>F8|rfFSbHK!Edt z05<>xxPc(R4FUl!9R#=x5a4_uzzqgLvqM0D8wvv4Fc9EQ00C||2yiEY05<{zxRD^h zodkkrM}Yu08U(oSfB<(g2ykOSfb)X@cM1q_-vt5gR1h>f76iC)Ai$jl0^I2!z-58} zHy#AI2_V3o0Rr4akmAnPNg%*wfdDrd1h{Mv;Br8K%LM^$3J7phL4cbEf@Y_K0Cy$` za5F%FI|~H3vq6A62L!m8Ai&K60q$H7GfSV__y{Z9ldlU<@;dJWFViC~0GcW`8HUHt;ZUhK`txRHOC z1SJ~zJ1ipG$bSGLeXqDGzRlR{HqM~&F}>z632)i=H~9>)v|}6aXIezI0Y4fdHQ+J) znv-9NKl^>cZb@>_*ebQTKWtaxM<7xI9*-*MN`fP2#nG7j&XP1n@UO0DlVv@V7w# z|04+Ce*yvg&meGO9|+*@fB^m%5WwFB0lXUo@b^Ffe;)+!4?qC_5Crg#K;XoF5WxQ( z1n?dZzz=``{xJyP2SEV;1O)K^00I23Ab|f31WxpV0RDFnz&`~6{4)^14}k#wISAl~ zK>+^(1n?sufd4O$Vl~~k)pTQdje=N7rW?#BBubK+vc5(Ux9+&=RWvWBo6+&v)m_~f z`sy``{)hgF(ng}$XQoADn|)4!D8afzc@cMGt{tIuN3q411nZ7 z4c!Hinud}-zvOjCwX{Ju1j^C=)*WBJ5_85j4V}s@@(qFQ`DJVx`V~z>Uy_a6?&|&W z=+W)nU_5mxtkYPjxz5w(4YoX&0W3i=anZ30!ZIb zQeP&!p}fG-o-KarEh1a|TndqjpTYg+=O;=VmLBUbes;bT>la)6d;pQUj19?HLw9rf zGKTS?E@LlK{OmAo;Q2So>iKueC-vof3fdh=>Jq)fVKAQGB zPNx0Se%kM(7d{I*GHL(ZMA|=}P5aKNwBI{}_AgOFrQnqS?O&z$LJPVU(Ehc>w12&r z_HS0w{_T3&|B3Q01^c43|4TdVyEoGQ{VlZru!HvdyJ+9jP5X~~Y5$2pTC3o%lq)Uh z4bcA6V%i^y8hZ-9Lg$Ku)7KSz72J@qEx({0akP_oZF_ot`Ys;0ClXBMbM+Nofd49Y z)${yp{Keh!`?T4Y&u%+9`?A8e!?Q0fY&t=?c<`h!}+jrblARN%Wflh*1@Ka=|jJ(u9}zH( znH}2QUY@1(KiiGTgT4*y`zavXJJ!yiRp5Vdi(@>_T=i=`Q{PCxT zwg%`kb-6uh-l0b75KpSZVWa>noVq{;XigI+k9H48OYsc!xCeR% z4)D6Y-a&59fPtwl`ZNmLzyT?#sW6u6bYa6j)dkBgr&AqfYKk+_=5RR31CQ4=EDenc zkDK=B9EW50iQd%IboU^aC(V~OFx}@!NpZP6Fg_^N?Mihxohkeue5Up%;B!>Nk>WJK zr6aIx{Gn@_k?M3)+8t^ZnOQWPCnOdqjnhE!y}jXpH7H6O7Q_(vY@|wtDL1X7N1dro zV87jV9@GnPu8Q!7@7SYj@%Jcr^x@=TlutKAv<^mF@b}AaYy8-*MDdg;O1Jr^0I0gnPrR8c%&z5WAR7t#^Bubvz;YoMrR51Qgn_eh|U$kXd(Iv=Q_zY zDmpqkMw}AO6ceInh)Gdg#nECK&d>>BgdKw*?RT^5+v_(SW9!%WHxSy}`?mFCxOYr( z&NPuTMdVHqh1J#Jijr#oLjSlj#Bx>^ejA~_G*l6;4V70_hZ`rC)-GtME1g{1P?W!5 zPDs{5dGm5ZSB@(SEgaVvntj>g+^kZuT+At{t*wjrOB=!^k+5H!T2)(G-BcF#&uom8 z;S2w)%5%LIW>rlMnE3Rc`OE66%KZJekqPw~p~wWk^dYaQd}1HY!f@kw{|#QjKOj(5 zTQSjJ6?c4-C)2@%8yo!<4RuZR{^eDXO8*pp-i3`cj8*ZFfQ_@^iwD258+F*WC0B@E*R6_kr)uW7vU94=n3c=@Agp>+rsIJ1%uID)6ULjpIsU3~ zWoJ}flh`jDwDoAJDr)7?a7VCJc|i8|&|?-{$bl*Y$t zqVs$W?Y7Wg7#iCtwh+g4078p@ui_vZP z905nYW22+XA)MLHVyE~`=hKB+~KO&R1fcK-@V^rc-Y@@5yyGnz7NJPM1T*PyafCW9(Qu z*-m4W^PB+U){VcE$BrJo74!+vt3fwCPA_W;ab(ZYqpuU)kDrtSUEOo^=rE+@4uM_` zIt)D8jO!N)quFPS8tC@48*U%*=|SEC*qcBKYD=syQ*WeSzXcyMkZ!tfZu*GxGX^a8 zM8$b0oiky|Sln?*oB5z0!S3ZJpfEe#x5hDNkjuI71T@WUmXRL(7GtdPf1Ir4tHJ&X zUm~rc)S`*M*&sRD{we+{@l9M9ROF@m?r;>OkGS1gknX=Nr64`?*3@8n_8M0(eMXCW zetMufea7tc?Ahs=dFlSV^byd{OZRZUd;)ko>^R8I@$GmI9PfeSJ#f4Sj`zUv9ys0u zx(D0=E_J&k)olILQ`3P;P?;+A=y4@&t7iq6j^sW4-g+^Y=n*Jw{OBC?B(C9ipp~4~ zTC{2T=U*S?C&3#W0b-lK`QG7_br*Am*zS;Zoe;;PTi)n*v}w~1G-+vO-Eh+*x8h=^ zdQH@;*m_+^Yf;+hw;X6|P6;s8{9;wte(Uz=xBY0-b-WM6#}iQcc(Io2x<7kWJyXdg z`v3f1|Bk)ArH9mc-KuD(qHij?U(v&gx>URjSM)SRr(5D^-kdpS`!n&2@8kVbvu0#X z^XF#gOv|30JH?;5FkI#jmP90f(v-8ti;3_^o)p=&lT={xBHQjQ>Qa9;;y~)J9vzTc zwCGN-N&OVWh0^C+4O&jxph7jPl0~QZB&Gf_d!xUE)QOE z5H8OL*t@Cdz$+3WHTyH{J(IC}+jTes!)a6Cs_Ton;E1$r_~rWQEmBE40-LUXQrVX_ z7Tw|cn#v>6z6Qv3l*)eZIKm2pDw*C3;E&7TO177N=ilYv$_(%2WY)=*fOi|&O65w> z`(whmxU#_eAk4VjTv_a;PrO}e#-nJh*t?R{1{jZ{Qt54?${>S0uJ<~~+F-6kyfoLi zh8o*Jn!UdyKTkBM$D`hAQX65=dAr5Cn~rRxu^kF6-V$o(JH}pA)_VPryG}E9gS2}$ zlh>1tH&EH&{W(>#xw6r_g(^8*dDy#+D!E+Q;@wG=DaJ#@wpNntY;McOFx@Ig9UPuc{4Y#&bN4OH{cNgPNg zmE0cmDhkA<)5+YwXzoyohYe)Ra}YdtGwU6u;vy8&Z^6#+*aO|T*8^WNu7s!@3eNS9 z-k5=#ZV&n3T>tQmKD@vv3@<4;*KfJWH-V~yM{u=w)!_0nVGPYg&9Q#5&x<}VPU=OA zj`fwkLbzg#`iN@_2G1A9Sn|lRzG(2Z!WbvZWrMF1#%Z!#?E4C*$H#g8S1Udy)==>pAGc9w-c?ej^8@7Viz=&H`s3brw0pOs7;3?m{gh$C#NS z6@;7qK@diflgvz&3c^j(1-C{1GSkg_mvH}Bi^z3mrt#h*+)t8-I;&fYJi@mE2kyT1 zb8ym};@kkFsCQ{iFGdr?Q-$w`q**-%oHQr>@;hsONt$%jQ?({+rh@6NFJ#T2)*Oqf zuNuAXZYX8R#c`4=z;j1vD5p8EjFX&<(coV8BbJm}CEV_#;IoG#h3^Gwcf~H&tk;_N zqUt-FY~1i?mbAx7W)WuP=PcP`m9TXRP<{OGq3phS4EAZxm$c@WWIdN8EoZT$D^9YH zj<@v^me4QZ%RVE_K@{EpQo|DZL3~rf?cM@Dw>wDqhCX|z~XHDOE%8xEoecfc^?hMFrzT+e>KoFqi;Ja7$5+T$dpbOtspXUP_;gk$wq@U^cOQo9drV$E)?c_XT< zxm9brh0jgCKm0Ol76;T(J)||ewPuR&O`_g?rei&@Gzv&w9mNtcCx9C2gc-UP$L~3HF6zTp!8y;^$52Fo6c>YH zdzKfFJ`%|V4dDgkiAJZ?UOD7NI@l|W_qZNaE6V$fuejcEv1bi@>pu|9xF~-X!50= zyl1Al;-rNp&&_lsEHYP|cWDtF6pPFiCoMD?MaRb?msAjLT4-`xbg0ZU7o+>Nh>n^? z9;qPQ1~`nO4q&FaP9066a?G977c3gW`@zC}CW+{DE!84(3A-E|OxyDUkYaLPs5NO) zXSlh9-Nc%`TJuKIq$TWDt!XY{UuI2DFhC};^gvZDVLxIC{V-=tBA2j7Swg?h8I#B* z>`2V|Y0guv5^gsOeD=^>!p>pMY^_PRifRda4NDfpN#qiCIZNuT61ILT`1<(e5_S`7 zeqU?eh^kt`{+1=}aT2+NeS;-;$4TT8_HQh?*DB$5QxMPGuDOIA2~L`Gv(`LB?aC$W z6qam>lgK6Pe3tCAO4#~RZQWeL$^~SX)?5e$wS-;IHhSYEatZqjmiP+Qxnc~TwfkOR zNp_q>E@9tg$$~hET*Ce@megA%9IJQ^D|-UI$|dZnyad~*HNOUsHD_o|a|t`2HT~x+ z4>M7f@vk+_CG2w63~0@Tq*;!Gxm9bT^%=<5nb!g2mwdPcmar`> ziN;Cf681ipbXXYAHl3_B?tK|G7gAAaRB*13 z-sIjnGk{|3<0)5_Fa{FXvA!AyK)sL_#x55|2OHzkhYoP2k4hhG3~~ETgwk-~Oh0?T zIRgrZ!roXhV8FSM!yi?IE2$aaqE#ZKrB3)<89FkZEWJw7sgDS~!%d z19UTp9K$FaN{B(Hz|Ld{)3c28MoKSEA4!e{M%R?nY z(jiKUCP_LprhMMWnImz#Vr7uV@&3@K{=AV%`y&<-Iyw*%Df)C$Af(1lU*XWW)8~pm zLGA$vz#$ki9tr`3j1B-%LAQe9Q#vKaKhg)$C!@H36!#3ja_nK3B`il6w^B|3w#FRCI|D>N_?1 zjE%lkD_Pb|->6~J-=dK-D3^uHvnuIVw7H$Xu zN7@+Vk*b<-s3u%ORji!Q4Gx`gKFPD*vrITr9IkfkjdqvkamR$Ao(rhrin#WB9`HQi zm~g^suD81$uv2G-Bh&C~h6-tVHuiX)@mvcf$1}9^w9?*@GmI-6dB0h*PT7|X+D z$AsZ5pV}8PH5p_Q>pIW(+z+VXI^X4-dB10qqk5Pp*YmmO+Gjnjj=94;8$I0e57>Nx z#g?-<1{_4dtf9_OjFm~OCyW!Nv1edxn$1`snXz)uMl!ZEW^C;JVBPLe#yVhZo@wl9 z_H1r4W6HB7F=G>8%;|NkbsEyQoiLYA=C~)Nx$~2lOIPNKW9Ckm<_@PQbJTBaj{B{D za|!zGwEH~|{MLal#SKcb|35U;a{h;hn!Y#x219LQze8=L8fwGLq2^4(^C65dXW9-T z|D(e#KNdO92@2~)Jl@Eq=MXt_Y;j$fBoKAvTpcra23dQ;7*0{G&3%h8#{<}6j)sXI zbK2au9d#CS?A@1+kyh{Q=7QhyVAncNvYPw0qt4=;niG!5IYA$;z4!9Jxqr%_niaIc z|AL3qf6jr9i9E|_d%^#Fv|xT#^9!P@tj(*PM;~i9@|AoczFZI0RhNb8%FFRlwJ57= zT3Q_zp~8zoa|??K1mXDKhM!$l)}WC^)eQjWgcjnnDP_2ztRmdFAPf~{b_zVF@42Vt zd+p|!J*EHJ5+q0pYU+xu|P^ky}Y3+5)Rcz8bqkPx}>5}o3kIFQeWCs9$H$`h#sr1 zE4@x!A8x2?qz}~T+jJ4CDQUPa+|VdW>zhL54dL&F<^``$>H{5y^suU|c@FkO8Pw!vbpNI+6q7K z==8-|wVaQfq>@|_Ds5^AmDW`^)zq?9tUv7iGu0+XFxS_~a~1>PM3^U*&s9@xBfcBQ zyGHce0V33hlPE$o0;W$*7HKl7(FqBUN6>fs=4mGtj5S*T#)eDGv*{w%S*BCeYjj$t zZMnPgd6C8J;rrM^)a9OS>uPv#O69D6A zBq&_m5WwN!b4fB!Lx6^?#k!s-%wD78$(fGhsjIJtatY>`GJ&xlZlr-$8*avthU!bo zawI_rPz@uJ$W%$D=@#sMVAROzBCZR`og_0?Y^32d#aSbXY^M)Y&JyaFb@tN zCJ6e;kJ>uKb0ubR90fuQeZZ51IWKY-mXu!CR4*qIycp-7bL=2^F9&uw16CH7o%j+g(fhDYyt1j^qqTyZB25&hB(mc*-`kDXA0YJm%klhy zqCGW{ok1etO2kh$-+PX?lOa0P`_S=xpSX2VB0GacS3>>}^F8W#J44O)r{npjH`j%TQvQ+y{0 zpMG4c@8;wW?&A5#MIqVr_oMM#WM9EB@Rgjs-;f_g^bZpCw)0M&6Mv(PpQZTSHhw;OYgWgVqxi*v0CW6`f05!x6@QrG*C_r*#hkFE%$F+WW zLG$&v&JIe??c;iZjjzXby^XKOwSFlv64LNYH#euJ!8(ny<&Te)&L; zQ$4P?DEpeP$F+X(K=bvu?o#^paoua<>v64LG0^&YTv64LF3@~E zuJx+~_Hpe$U!E7giW5Dq1B$Q5g&x<%if$uh9T0gkAk8AyyUi+`dwSFj1*LB+TxYm#0{mhMxYf%(nj^^ue?YHsuxDF`3 zM8(E+)W+B2y2Hl*BFVVMWh&u#|C;BA!9rZ7TZAIEfp}DwXx&1xMDxZ7ezZ2E&$@9u z+v&SL%vJjOJ3g{YTLJU?u45OooxbbFTJVQpJrh;yVTUv$Rxw{yEaYAA{rGy$zRp~q zME^nXebBEiF1A<^fJe3NcbVZ0m;)*q^@lFK5G!5Bm0go2%^W zT(f@D;sW+(q|mQ5dsMrNSzlEwuvsTWc@*XUY6da`1(NR#O&E6F>AK8Wh}MR*NbDx%%qI%$bd`YNu0$vA4y``vrA&u`X;SnsJ^oPaPd77 zpK4XPxxVS9I4^DO#g5vHD~r`wlq8WVUz13cw|%5$`b~91a)o5}O$*7IIA*#s)+v2j zH#669!%cUK`BWrXE;OcKdt%VX0*)^3;X(WpBwMCGE|nUeMz%d|i<>*_X~0lu?!wvg z3ql1K=3~l}^Peuq%|c}&lz+vAv*#DiftE$W-31nM)uDo*vKGu=C_?j!F3Ou-6uM~c z+)D};g%-`uD=MHC@ZwKtsI(DJ!C*!HoOB>Cuc$C@PAE4kH*1=xZ;CX=b3);=l1Pat z#~j=kwuz)Y_5x2ws%q_GLdr=}l-J`ou_NVnjf$GOTB*T3P}W!%sw}B3Q;$CRt)>t? z53%}A9f11M#ztkE)2VUK_R8z(!!~ak6FE@M4-o85Et)?^os(nch3yKt_QbKsYFtr+ zJUnQmLDEWHLWhJK>O~fQUOb#NJFjq3q@+UCDr%dumNr#YmrbfF6IoQNENQG1S!F9~ zVNX&#vSGae>Z>Cni~BAsLJxYfI0mvB>iGO-g)7xnu(AwT zU6TlTIg|)pzP1!vXwf>C%SqGF_{#stxNhJ)HXQ*(gs)YkIxjo#6FZ2n_; z$(vpes;amU1-!~?`oG-~K#hL4g9%=FloZP~?kA1c_kWjx@5G;Ozrz_oP2hO}6Hy_F zxwrS<5=iK`HZ)#8PoOWhX&Wwy`THVTPt)rlr{C_-^*~C15dnqwa}93+gHqetf5jG* z$0b#bFIM``|C=p)wzrK&^Q21AL04PL2QB593!HU<!H+MIzMuQ96Dfnx}pEjrGUz(rvxku65dN;`8 b`#SKIM7OIIk?~82f9(OO5wrnpRq?+8{svb4 diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c index 959051f92c..3086439a9e 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c @@ -1,21 +1,20 @@ + #include #include -#define NB_Z 51 -void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t,int); -void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t,int); - +#define NB_R 3 +void nrLDPC_cnProc_BG1_generator_AVX2(int); +void nrLDPC_cnProc_BG2_generator_AVX2(int); int main() { - uint16_t Z[NB_Z]={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,20,22,24,26,28,30,32,36,40,44,48,52,56,60,64,72,80,88,96,104,112,120,128,144,160,176,192,208,224,240,256,288,320,352,384}; + int R[NB_R]={0,1,2}; + for(int i=0; i1oxXVQNo07DCVLZ}I7tUEk9nd}ofjgK5t| zuk1+fMBHl74Q)^U|APOS3-H2-h*J7~Nsh-Z) zKjh4(gZS~URk5bg@vmaJQk7u*%Nowd|3*U6;m_g<v00JL4O5$0K`!x_8h7$B@FXCstE|v0lJRK`hARhh8hdpog?(9~G}(N$9V?(DiG% zgdQI(kkl_0-VX-GZD)Y4(Tm={M+Nb^R7ahgu{9}{>dtUIJ45z2dtwZWh2eeAw9x4T z0wV^!2io)d=D@HEC8rcem;R_TG@2EuMP?h@Eysxz3kw;~sHJC%c3;1+9gCrEL}uMJ znMM%$@%`mnblmSX`r`*<#AN?oa4r%{`#scXpsSxRFMXC?bVj2w)R$#|Gz7Mm>OMnZ zN@S|`!~&-ooeYu5%;6AX;fj|sEE0yw#O%VXJRrA%h{k3{lV;Z2lVe1$olpBBT8O$f zY!OW%8f)zd`VCAa4H&2^ua`_&ZZw!q+N0_4V)TA=F?wf>rw?{LkW7(DI+Bcx?#Y{8 z&teHtgC9?HpLerHLn_f*2&XJpL@1UTj}@YcF|Z9L2$#~zkQZdgsb%OjPsSr+-N)%G z=I9n0f-_|L-ND#4prHeuid4zjS-U-yE1G$X9@<{p)g!M!tJY~gbTu8`7#14$(Z!Vw z?T@IE&PCQz=mQbuefkpkbWe*xANzgVn4rlR8J+GOx-lo{cXM(F5GSVs!)JaVR9LDMm?lBX+-$wNQ4X6yI@SZWq(`PsACzV z)~6#kZMce25g#kMdZx%Fnh}M@veSRf-X9lE?Y>iB?r+L1sD;NzEQ_)_6A@q^`;Fz< zjMYLTi$FzvqSfT~BByEUBabAV!Y87B}T3?K}#fg(+f;uUIsF2b7tnI)IzV3RC1Ol zkM1HRFh}0fd7VyRWWprf=b>YDV7eZ#E&~(zJnw~J4xCh9JA*0I4Z(w+`PH<|n}LCD zzJVaN8VZ>4flM_oddI(^6QtnM>(>>cz8Il3HOnpXGnt0(47ZD?pOHye=!^|+jj?+w z=x}^>-F8spw-0ZAb@UZNIz5cRJj1eyM$YZst5I05vXs7=9EIoUzxgjUxs(8kwCX%z za9fBH2AAT5&5gJmj~~$ZD|7_|etd(e#l0qY3tm+GLRPz9UMcVc*1FzG_fa_VDgw-g z*<(6@aqrd%sgmy4vW)Hoq@oTe0Ue2ES-7`>9U;R`pxEPZlR2y5klxT`Y21;kt-Ch= z06$JnL=$@8&>(6bvD-mFfAT+Suu*aDa-T>vPY4!0(m_Y%y}7ZS`Or3RN4`N+?3PWM#)@_6l_icH0zM*M`+6G&YQq zHCh#Kxm9s1U|np@z$d7gsa|w$pWNz7TiJ<3hMOQ^*CF@!HG7{=L|BQ>lQ94eo#&z} zFTzlI|A#dXAum}cH!4ydGHrAU_x>bxxI}WySUKj+xC^E;M2eEKAmrp^X*KhDFJyK* zaJ&}FdpGYM5#RJP#%k_If&SbC;j2jrUkwqyyAFk(QgQJa>P?fDAhg<4TR_ncLTdz> z;lD01e)fIPLVwHBY!=Iuc$-YQDpKMdKuWwGQmUCDCC(Bl@#;va9wJhvz{!)tqe;x; z4mGDqN)Zcv?VR>Cr*GUha2?%~b=JMxyWAe-^qwuW*uC3gB(UF^5#utW)}h9Dg%i@_ zG6mBRBw>vISCHg4!VbYC&Kf2+L6eoFG+BwHNvzLtQpQ?QErs|@uxx2D~2;qnXB~g*!zZQJR9=zZ~PK}oj&7Z=@W^`rqGkRj9GrF=V)W%S)x+B}I zsjybv0jyPXtPNsqHOJaR!&;RGN!1){lVh#6VXTdAu^el2tPO^P!&-H(uvSlswR$Ah z%D(6O>XNUE>P@``U`wCwll@V#Dmy!%SQfFWidfU#r~KS2E@e9JXhr3uVqCt;4ku@YPq zj+PL>;Yb0joXGsFfF=1|>UQBdhMu*3+%eW1eD(_520d%*(Q|FD>6ru1wH%%g4W2a~ ziq&#>P7crdhT%E7#d3Jg;W-!%4xY8l_KP>b%veea%`_$djj%a2V|fWRW2uRy7N9fo z4(SpVjZmW|5pdL1haIK)7H-5<_5}s{oryRZw2%ZcXkjrjXdww?(86M5&_WW(poPWA za0*EP*wvi@>@=^yRd-;6y1E`>V`;A$n+Mrg$|?KMD7(sIHkhq*%ubBiwGCr-Oq1oD zopW|D92{p?_woD%oOqKONAFUrk-W|M-Z8E&wm+)sG@J2F7EiJ zOzw(yxr53|LG-*-uIZqX+)5T4REC^Pl98FYi%NO#T~r2BCU8(G@3DhQd0hvUU_7p@ z>7Y{PIk`;fpi&Mvxm?phWoWBr(|#szlKGj;ohAko?vT^ORLvu#X^$#>$(1$)`=cte z?Z|_4m`IW*@|egRCZb(+nYeX_i8rfk%sO*?gu_HnrS)75dVj{Xb-cqqf67FggrN+f zkaD*$iT*yZPvgrk-l9a?he_>7zKevdj8{9QE5M|7JgHB> zxEhG9&tyB5tF={%?aCDTC)v16s&C@m%Q*c48=1@Ne#ITlG)<6bYcpQc)O(!q;<%fg zNln^{Bf|gtd(H{Y?>Y(YI*BCC!ivuX_Ind+t<~ID3Zd7sCI5TbQfOtv`O=%;izWFM z2Km-SRhHPdK71d@)xZaGj{D3VgK1n@dVOML;`bz^aFw2oV@t2(EEWJXq+JH^om__0 zi(CvWjE6XPk)egb!nY6nVpjP!K|pkxxjVy|duyH=`5klUW*{lflhy(#dMRmmVa2IRg6qPC^F9S)?L6U&5VxkMtrIx<_0fd*mQ7AdMBV z5CN&Yz;O+B<2!KlRElS}D94A7!jV7`j`L0ty|C&FLdjnd%H}1Zr@Xl@cPzNh zdqNq$DYVL~LRr2n#D85V$Y(qsgS+8jFvC}cp8iFlHC_|S`XwQnlTTYuz*-rSR%V=) zYIkhsd=18{HS-#r;Mh#qVaF_Iafef{=$XZLEOX@1)afWH;_T|^bE{Vozi_a1oR60k zrO!{jjy&<&J83U=J8zr*54Z0Aa1AKryFc_)THTAvqu_fTH3){RBjnqA%RIj6`SxDi z_8zZ;1s~+{9Gc9pZf0XIx@8Y_V{gZ{_5!-i<|_?X(TJzDPxP!d<0rM5KBrCngm&kg z113=|@;&xVKy{Vv)DltL+*?al#kmH=7w3A9nIBHQlim}z?mTe~VCFkd^i*2oQ0GUk7~l6J*Wl%C z(DH^|#raN7jy5C(Ebjs;X9&tsCo!QQBnM7Z-Vh+iG-n(k=Zu``l% z`!71}oFBpEs_~zlhj4YRBc9~^h^IXXA3FC2IU?pM%W%$rQlrj)lB6n@$oWrNwW?GV zO?oC_NtLzy{HINXi^grYD_s0|`R3i{#_2EU^cNt1bUGx*4GEV&(0JkPuWv6JzN5mN ztDmng8t8fPcXQC|cB~#cE_X}9$Me6FNVxX0+-;P{B|!jzFCmJ^fKMSQ4FJ* zkDfn%{Pgzf&HL;2Pai+Lot=@hjXI`<(djKZwI{tsw^oCjq)`6!)5oiSL16=AP1^ScEFQFW3h)%6OSUna5cG*onzv`L&r}^*_@a%ii*-roLe(fW>GyQ7ZLd6+n th%Dd!i5&a7e)GsNyYxu5U@SYR4YA>yPq%r001WpdZYjV literal 0 HcmV?d00001 diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/Makefile b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/Makefile index b17a7fe62a..f2f8f5e367 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/Makefile +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/Makefile @@ -8,7 +8,7 @@ OBJ= $(SRC:.c=.o) all: $(EXEC) cnProc_gen_avx512: $(OBJ) - @$(CC) -o $@ $^ $(LDFLAGS) -O2 + @$(CC) -o $@ $^ $(LDFLAGS) -O3 #main.o: cnProc_gen_avx512.h diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c index fd691a66fa..fb0db9236a 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c @@ -1,9 +1,10 @@ + #include #include #include "../../nrLDPCdecoder_defs.h" -void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) +void nrLDPC_cnProc_BG1_generator_AVX512(int R) { const char *ratestr[3]={"13","23","89"}; @@ -13,18 +14,18 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // system("mkdir -p ../ldpc_gen_files"); char fname[50]; - sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); + sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h",ratestr[R]); FILE *fd=fopen(fname,"w"); if (fd == NULL) {printf("Cannot create \n");abort();} - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); + // fprintf(fd,"#include \n"); +// fprintf(fd,"#include \n"); fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); + fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) {\n",ratestr[R]); const uint8_t* lut_numCnInCnGroups; const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; @@ -34,14 +35,22 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - uint32_t M; + + uint32_t j; uint32_t k; // Offset to each bit within a group in terms of 64 Byte uint32_t bitOffsetInGroup; + fprintf(fd," uint32_t M, i;\n"); + fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); + + fprintf(fd," zeros = _mm512_setzero_si512();\n"); + fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); + fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); + + // ===================================================================== // Process group with 3 BNs @@ -53,16 +62,13 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - if (lut_numCnInCnGroups[0] > 0) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; + //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; + + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; @@ -72,54 +78,34 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) for (j=0; j<3; j++) { - fprintf(fd," for (int i=0;i<%d;i+=2) {\n",M); + fprintf(fd," for (i=0;i>6)+lut_idxCnProcG3[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2); - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + // for (k=1; k<2; k++) + //{ + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2); - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + // } // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + // min = _mm512_min_epu8(min, *maxLLR); // 128 in epi8 is -127 fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - + // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); + // p_cnProcBufResBit++; fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)); - - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," sgn = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+(lut_idxCnProcG3[j][0]/2)+1); - - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+(lut_idxCnProcG3[j][1]/2)+1); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)+1); - fprintf(fd," }\n"); } + } // ===================================================================== @@ -132,10 +118,10 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - + //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; // Loop over every BN for (j=0; j<4; j++) @@ -143,13 +129,12 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over CNs // for (i=0; i>6)+lut_idxCnProcG4[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); // Loop over BNs @@ -160,7 +145,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(sgn, zmm0); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); } @@ -187,23 +172,23 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; + //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; // Loop over every BN for (j=0; j<5; j++) { - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>6)+lut_idxCnProcG5[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); // Loop over BNs @@ -214,7 +199,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(sgn, zmm0); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); } @@ -240,23 +225,24 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; + //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; + + fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; // Loop over every BN for (j=0; j<6; j++) { - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>6)+lut_idxCnProcG6[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); // Loop over BNs @@ -267,7 +253,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(sgn, zmm0); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); } @@ -295,10 +281,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; + // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; + fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; // Loop over every BN @@ -307,13 +294,12 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over CNs // for (i=0; i>6)+lut_idxCnProcG7[j][0]/2); - // sgn = _mm512_sign_epi816(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," zmm0= ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG7[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); // Loop over BNs @@ -324,7 +310,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(sgn, zmm0); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); } @@ -353,10 +339,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; // Loop over every BN @@ -365,13 +352,12 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over CNs // for (i=0; i>6)+lut_idxCnProcG8[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG8[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); // Loop over BNs @@ -382,7 +368,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(sgn, zmm0); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); } @@ -395,8 +381,10 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) } } - // ===================================================================== + + // ===================================================================== // Process group with 9 BNs + fprintf(fd,"//Process group with 9 BNs\n"); // Offset is 2*384/32 = 12 const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, @@ -406,18 +394,16 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) {0,24,48,72,96,120,144,168}}; - - if (lut_numCnInCnGroups[6] > 0) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; + // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group // Loop over every BN for (j=0; j<9; j++) @@ -425,13 +411,12 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over CNs // for (i=0; i>6)+lut_idxCnProcG9[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>6)+lut_idxCnProcG9[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); // Loop over BNs @@ -442,7 +427,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(sgn, zmm0); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); } @@ -450,11 +435,16 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn, zeros);\n",(lut_startAddrCnGroups[6]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[6]>>6)+(j*bitOffsetInGroup)); + fprintf(fd," }\n"); } } + + + + + // ===================================================================== // Process group with 10 BNs fprintf(fd,"//Process group with 10 BNs\n"); @@ -469,12 +459,13 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; + //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; + fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - + + // Loop over every BN for (j=0; j<10; j++) @@ -482,13 +473,12 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over CNs // for (i=0; i>6)+lut_idxCnProcG10[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>6)+lut_idxCnProcG10[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); // Loop over BNs @@ -499,7 +489,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(sgn, zmm0); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); } @@ -533,11 +523,12 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; + // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; + fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - + // Loop over every BN for (j=0; j<19; j++) @@ -545,13 +536,12 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over CNs // for (i=0; i>6)+lut_idxCnProcG19[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>6)+lut_idxCnProcG19[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); // Loop over BNs @@ -562,7 +552,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(sgn, zmm0); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); } @@ -581,3 +571,5 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) + + diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save1 b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save1 new file mode 100644 index 0000000000..462f196d1d --- /dev/null +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save1 @@ -0,0 +1,603 @@ + +#include +#include +#include "../../nrLDPCdecoder_defs.h" + +void nrLDPC_cnProc_BG1_generator_AVX512(int R) +{ + const char *ratestr[3]={"13","23","89"}; + + if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} + + + // system("mkdir -p ../ldpc_gen_files"); + + char fname[50]; + sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h",ratestr[R]); + FILE *fd=fopen(fname,"w"); + if (fd == NULL) {printf("Cannot create \n");abort();} + + fprintf(fd,"#include \n"); + fprintf(fd,"#include \n"); + + + fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); + + + fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); + + const uint8_t* lut_numCnInCnGroups; + const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; + + if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; + else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; + else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; + else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} + + + + uint32_t i,j; + uint32_t k; + // Offset to each bit within a group in terms of 64 Byte + uint32_t bitOffsetInGroup; + + + fprintf(fd," uint32_t M, i;\n"); + fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); + fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); + fprintf(fd," __m512i* p_cnProcBufResBit;\n"); + fprintf(fd," __m512i* p_cnProcBufRes;\n"); + fprintf(fd," __m512i* p_cnProcBuf;\n"); + + + fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); + + fprintf(fd," zeros = _mm512_setzero_si512();\n"); + fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); + fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); + + + + // ===================================================================== + // Process group with 3 BNs + fprintf(fd,"//Process group with 3 BNs\n"); + // LUT with offsets for bits that need to be processed + // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. + // Offsets are in units of bitOffsetInGroup (1*384/32)12 + // Offsets are in units of bitOffsetInGroup (1*384/32)12 + + const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; + + if (lut_numCnInCnGroups[0] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; + + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups[0]*NR_LDPC_ZMAX)>>6; + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[0]); + + // Loop over every BN + + for (j=0; j<3; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (i=0;i 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups[1]*NR_LDPC_ZMAX)>>6; + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[1]); + + // Loop over every BN + for (j=0; j<4; j++) + { + // Loop over CNs + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); + // { + fprintf(fd," for (i=0;i 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups[2]*NR_LDPC_ZMAX)>>6; + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[2]); + + // Loop over every BN + + for (j=0; j<5; j++) + { +fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (i=0;i 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; + + fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups[3]*NR_LDPC_ZMAX)>>6; + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[3]); + + // Loop over every BN + + for (j=0; j<6; j++) + { +fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (i=0;i 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; + fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups[4]*NR_LDPC_ZMAX)>>6; + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[4]); + + // Loop over every BN + + for (j=0; j<7; j++) + { + // Loop over CNs +fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); + // { + fprintf(fd," for (i=0;i 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups[5]*NR_LDPC_ZMAX)>>6; + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[5]); + + // Loop over every BN + + for (j=0; j<8; j++) + { +fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); + // { + fprintf(fd," for (i=0;i 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups[6]*NR_LDPC_ZMAX)>>6; + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[6]); + + // Loop over every BN + + for (j=0; j<9; j++) + { +fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (i=0;i 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; + fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups[7]*NR_LDPC_ZMAX)>>6; + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[7]); + + + // Loop over every BN + + for (j=0; j<10; j++) + { +fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); + // { + fprintf(fd," for (i=0;i 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; + fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups[8]*NR_LDPC_ZMAX)>>6; + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[8]); + + // Loop over every BN + + for (j=0; j<19; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (i=0;i #include "../../nrLDPCdecoder_defs.h" -void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) +void nrLDPC_cnProc_BG2_generator_AVX512(int R) { const char *ratestr[3]={"15","13","23"}; @@ -13,19 +13,19 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) // system("mkdir -p ../ldpc_gen_files"); char fname[50]; - sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG2_Z%d_R%s_AVX512.c",Z,ratestr[R]); + sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R%s_AVX512.h",ratestr[R]); FILE *fd=fopen(fname,"w"); if (fd == NULL) {printf("Cannot create \n");abort();} - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); + //fprintf(fd,"#include \n"); +// fprintf(fd,"#include \n"); fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - fprintf(fd,"void nrLDPC_cnProc_BG2_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); - + + fprintf(fd,"static inline void nrLDPC_cnProc_BG2_R%s_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) {\n",ratestr[R]); const uint8_t* lut_numCnInCnGroups; const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG2; @@ -36,13 +36,16 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) // Number of CNs in Groups - uint32_t M; + //uint32_t M; uint32_t j; uint32_t k; // Offset to each bit within a group in terms of 64 Byte uint32_t bitOffsetInGroup; - + fprintf(fd," uint32_t M;\n"); + fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); + fprintf(fd," zeros = _mm512_setzero_si512();\n"); + fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); // ===================================================================== // Process group with 3 BNs fprintf(fd,"//Process group with 3 BNs\n"); @@ -52,15 +55,11 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}}; - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - if (lut_numCnInCnGroups[0] > 0) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>6; @@ -72,13 +71,13 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) { - fprintf(fd," for (int i=0;i<%d;i+=2) {\n",M); + fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG3[j][0]/2); + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][0]/2); // sgn = _mm512_sign_epi8(ones, zmm0); // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); // 32 CNs of second BN // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; @@ -134,7 +133,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>6; @@ -142,7 +141,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) // Loop over every BN for (j=0; j<4; j++) { - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG4[j][0]/2); @@ -187,7 +186,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>6; @@ -197,7 +196,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) for (j=0; j<5; j++) { - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG5[j][0]/2); @@ -241,7 +240,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>6; @@ -251,7 +250,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) for (j=0; j<6; j++) { - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG6[j][0]/2); @@ -297,7 +296,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>6; @@ -307,7 +306,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) for (j=0; j<8; j++) { - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG8[j][0]/2); @@ -353,7 +352,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>6; @@ -363,7 +362,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) for (j=0; j<10; j++) { - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG10[j][0]/2); @@ -404,3 +403,4 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) + diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_avx512 b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_avx512 index de3b923c1f55f789bcf5a3598a8359a411c599c1..9f1d553a1cc90b6d267c0c69b0ab2f899e4e4783 100755 GIT binary patch literal 43352 zcmeHw34D~*)%Ts5WHLiYG7!L^6h;LNNJ3ae0UegWprDAjFOzK&f+0yW69g3<4M8Jn zgH?-NEbg?gRoc2x7Yw37TeWeirPbP0s|{*3Dy7s~`TpnJd!KD)5^Ue^{oddAKH zbMHClf9~>}d!PH9XUSEii{`ssE}=KKI7v`0&^gN&$_)T|9#&max6Pk{YY@w;HAyF#N+(IfT>AbULR#PE@%pe@q zHE=O!LCZLy>4mBuWr}JXWeHcPaD@t|X_u;)rn-I9Hu^17_LjLr$WcB-M9ky8NlBNs zCGW+nDE;Cx&Vq(Gp=mnY8Ng9J4|WSE#igpebp6t++NY_?iV1bK71O3nsH-ZftF3Qd zU9@`ow4!NKienAMlepbvpL7?Tb{3bU`!R?dwQmT1PQ#y^hJRuj{-iYgMc@bVb8h)yq^f6j8vb!< z_yWhFlDd7Gh&49V*2k+wbwgvcUNknxW1_sGp(!q^E9)9!QBi$qQ*9hXsYN0Ljl|;R zP4URe^4fY4iPWrYs8^hbSg>f}oVk%n#gmGsQtjQAKb@mvM1L4pq=K#a@LE4fFOXTW zKT^gi^35#8BT`US#yR2Lv&KDsI-#T8x7QVHf zODudnwyBJBEqpZC*vc&Y0R~ryaLY%&@P^FR^MfMX+7Zv}X@M}@@~m&CMG46RQ=6c2 zU`!nQyip;fD8HPP_H-Y>Hf9Cosmu0salV4`)Kz;rIDbCnJ(SebLTs zu*V&<_oAmsbf7zLRDyWhD5v#z?Ds%F-1ba(#|I~eU0vZ<_BR9kI4Oo(Uybj*DBRX5 z@$V>nVpi*ULAd3hvw-Zm5*4|qGqVXS*XKK_f5R=a3eJH-e56r@A!j`u#4Hc}16>#G zxg3zZQDRRFlx*NY26mP9Qjxn#_tJ6LRl1+Le^=?3#QbpdhSD#?n>NgA?QPrD^9klT zYkm+kT1vlkwXFTpedQZmJ2C{Z3cHs?>wC#ADrt|I8?57J!{!vmv(A%DnCS^fw zgx*!!y%mn3TF^WIjQvYyhQx=bNtR2p&L-9j)jY|%kXVIALwjIa+8t!nYFE$SzC<;< zu+!C~b%U&?n1gDT8oE0kr`b%3f+QMe5lu8i=aMMTBARB1+DWw6Qq~cMXcvio2T^A$ z4W4jk>o-B#J6oGTL}x2G5pr>vYX%9U!u#_c73(_k*4^M1g0kV34i{K?k9JXOw!aIb z#!;IITq@K=+4@)-`iID7Tghhv1f)f!$)fj7^)lQqG~6}T6b>{J9@lr z&ul2&oA>CtQmSfKPu`;)u4lNwLZ})A{_3A*rxqL5%E(%;6gjL>i_=kT5iihPab8ZEf$mafyqYzuAg<@e8y0MP{w2 z=uf36ZSxI-w*I`_V$jh8n=K+o545HfaSyCWt_JmhQM#=Y{`C*DIk`r2yrpQ)QLxj3 z8LegQUU%O5CoHaS`u9*${0D4Q?`oylzgHl!6p3yZ63ghwyOB5>2|=QBwdi~;x=@QQ zMuOpVR$)|y7FB6cH4@!)Q1pu^bn&I~Czng{}p0*7li zBX>FqiQSYKjl?{1xnq#nN{K=w*yYA)o$*?ySnHH%ok>Wr!6{m2n%0@FbxzbeGm+pz zPtrOetusgK%+osak(j4F)~)9C$4rkUR!Wbp+6RxNRaN?Vy*j)9MddCj{}=yUTZ1F;g}Ct zM5e#-tiKT=<(P1jHE4)-6H}2LbGfuZj%jUu8pr%%uW2X;9WGCgYslY5afv(yX5_7J zPwAM~lHxwtfYWtDV>J2WJETg9KO@1O^*$2q#OXoeVM=^}1bgU5NU-w9NU(A*60H0g z60E!z30B^R1Q)R%30D3B30D3R30D3J304;9BUW}(XHlUUNU*XO30C$Y!O8=WVC8{G zuyQUETtol~RvwH5D-S_}m4_k0$^}TU^5ICd>lxXjT>e$l<%yNj<-hqkT;9{C%U_+| zAPt(^uR`E>t-kvbhh3JQqtLa7pZr)-VIXL*?JGi>dw}CL9qP24`fSc>-`{D z6K??l;71?;{1^m){{jKv0T2Lw0s_E;AOJiBf`Yb!0Ps@~0DcAnz|TPdco+nLM?e60 z6a;|BKv2*&5CDDw0>I-S06YN#z>^>VJOu*4b`Sub20=j`AOP$D0pJ-B0Cs`^@GJ-b z&w&8Y2?D?_5ES%02mmjD0Psr?0Dc7mz>6RNyaWQk%OC*!8UzJ(fdKFd2mr5w0Pq?J z0I!1p@EZ^S-T(pMw;=5}M6_7SP~-3wa~u*Yv?C9DOO9Leasc- zA|1o)G+kst#3>}3}2JxX&9=i_B9Nnmda2lO`epVrqOjhm&n5~D{uWO zI`V3@WM1QTkzzR%J6l6gfTPR?fuqbJ_0HD0AaImKNSS~0Db`o;1_}beh~;NaWM$s5fH%3KmacX0lWeP@JbNCt3Uvcf&g9( z0(cDwDzO{{@LCYSSAYP12?*eIAb_s~0lXdr@CFdT8$kg7CP*2s<3RwAfdC!{0i32r z!0FHcPU~5~SAzh)1_bcSKmflSWOZlj6(E4G1p)j@5Wuej0XzW$_|+hQUjqVo3kcxr zKmczAK_%9M0Ddh9;Maiw-Ub5r^&o(600I045WsH)0sJNqz`q58O08QdSla4HpCLMc`DJGq@mLeUK&RrIfW74@6A~osw`kZtw zmNsb8QB`$JI=z@EjEG3@9<%+9bN^5-ktZF$ebS*5g`AyA=VQ|O$gr`irx9r*ni)ih zx$UWs5LDo3=BX%`qM4F*b%M6Al%tuX#?eelP&5-_8RQ!en>~N;p=c)CvPLt>mX2mF zqk3>Oa}jfUCKJON%>=(^I}G*w2s=H6TB4aG9|@4XAPT@Gq)Az!CkTybW&*8OEs$}_ zSHPfXCRI~KGk;GkL^HX0QtMq}A)2Wg+5^+l?p&i*yLyhLYPt=^j>ktCoh}xmnwMHc zGYnCXL>F2_bPr1&sxlJIwuq)1qD>?^#v(FNyGfL75t-}0fu}*#`xhPP94G^wm^qqo zM#MZq>r>?7GS>_;kR}N=LENEMC6>vd5C)Bdc@7M3gH9hSk~5?U9=k!KF(Infc|gWUi3ROF&kWZ(z=%s5gc9 zK2ZLlSo#EF^O4D@$~Md~efY@j>3w7>(Bva1A$5ok=a0>7+`ecHqZf=G-TG&Pu~$Z(S!|wlw53FcXN4^yhi4T*q|Ph|{*mkI zBX26QpJhlJmJV~AS!}*`+qC7v$P^tH>$*KUR)A{Z33&(|WVXbqD)>(uE8$3_%>|7AA6xuM&Y;5 zkm#VqUL=APr{0G|f)e|Y;JYRi&tu1=cpfWLJdc$Hjvp(#kznNvBv{#tL>XE3A;HQ6 zkYHts=dp4w6096Rf|Um&(LpGR=dm)y^H`bUd8~Xm60AG|305A7M3CwnM1qx%LV}e? zBf-kYAi>IoNU-uaBoaCluH%A#HD`8fTyO_E&zM%v`y)mJJ#c_|Kg})9@28*HF92GN zhCbth0hmaN3);N%mAB2~>=+;WEF#DB{w73vdO!G(A$g2FWN53(d`o$bfpUpOA$4f(v~B2}V7L1f#Yh!Kj}h!KjCkVAP{XFlrkTTqu~+Zy>>_-AFL%_ee16EhHHA zHWG~LMuJiAATeGKN*yHp#2l2?AfatgKKo|B%PqC4PqifP1X>MBN03l1ayWdBC0Apr zLAl>LIn0!nxDdynEVqapgK|DZdQe){T*)y+^9C0#|ph5?|E9so4@0ici`02hJ)Kbpy0sw{d0HBZ_02I;#pc(`K3h9-|kRAXO(gR=x2mln)1Asz$08mH| z01D{=Kp{O8)Cd9qh4cVu0s(+RdH}>h0HAX`0INU%ppYI4S`7jKh4cWp3c#B z2mln)1K>&!04Su_C_{PxP)HAeYd`>?kRAXO(gT1(dH}2k0f0h!I+Cx0Y9E<{)EZQ? z4boA&F-ZH4N!6hSo=$=^yN)Dg+IovOa~TegyFfOc3!jsbcvM0$W) zg8ZrDZL%tKRb;PCimRd=OOcKdI>{n(jL^d%QX@2Nke^SSAHU)3vc9g05>lJH#tia@ zY2e)pkvefA$WLP?d4!%vidR6fvsFL=KI8&{54lObv(*CvAIbn(-PxK6(%#wX1%dBn zfpm1X`as}B2qd`#YXb|AW zfB<(42yn-O09ObC+*lCc#(@BL90+jZLCQK?i$H)Y1_5pY2yi7Jz)b`JZW0J^lRw*X`dT!OAFy(&ubTXRMrmX4CxW`vyA`<)Tir=Jn>fL1d?fi0T$ z966x%AwSy`u<131rJ4esvWOg0z+DjODIkH>zrA4dnG;Xg^#R@AFTzvieNROJOJR<| zKh+{~4F1C*QiGrFx8W*A4@Fav2mhz9rtFJmp7*P+cc z_^*OuXX|D>numbvogi?YyFfFK>+Un0elAt;Lm^nz7quSXF&j`$D0A~1Oa>( z2rBVB2;eV(0RBr5z<&h-_=_NbzXSsK%OHUN8U*kz5WrsnK_y-V0sJ)(z+VRe{5K$g zzX1aHZ$SXx4FdS@Kmh+e2;gsmpb~F^0R9IMz~2S|{Er}jcY^@_ClJ8j0RjA75WxQo z0{D9%sKomqfd2&q@E#Dr_kaNY0SMq9f&fmBVFUhG5WqhM0sIpXRH7FI@J~Si{|p51 z&p`m+3j+AxKmgwd0{GuS0N)P+_&-3(;E*)+WT~mgvKS$jo_Y$cG4-2&jj0E73rW*l z#`m!pxdmu71B^&}hp()^86a0$Ni`Eqwul@vQ2|7HCbBF>R6Q&a+8y1PjQD0FEk^9M zNwFA7yv%Ll+BoK;do3b!n&EKQ^$@A~DDBNZo{!3<4Z2)VRdp;zHen7iqAZ`kWLCy; zxlq6*>YIPo#fUi{{gvjUPsqlNxAuO4BOP2C62CZ$=IyrM;w_BN!}o^Udc$pBZ1A-W z2)8_wfm&rKFY+lb`qVsu5i6w^EkY67GWztQ&FN2Ir^!ZAmjqLKk-qQ@;7&r{(V(3# zn*HUt@a(aO9Io^dL@8WJRVIZi;n8Bg@}xfPoo^92Tv&Rb8Hi~7_?mnkxcJpi85bB|$TS5G0*FYJ`> z3(Y=fcH4p3XD@8qH~XxGZNHhlY|)Kl&OJJaSAuRVB6{YcvF}ZMGrZ$p9(u#7=hk1M zgx0^tN9K)MhXRCH)b_!mwte$p==0TN%)guN zNd1K0B|I6K-YlPgK)x$;urJf?c4Yu7JUT%JXcUQ&BeJsn8NPwOtbqdtW)H|3Fd!$( zmpw4k>m{iW1G6(SGhr;#oEPum(kG!-5!$I=eC@!;l-+(W9PB53pZvI~nSw zI97}ByBNRg@OuC}dU0(Z(#N_)q5(!*@cYTvHQs+!61bg_pbO4p@jC(OmH0h^bf?57 zP-KE$R;Jy@=nR@yq--`iI8LNc`Yjr~@AZZfi5r zbS!=VnPp4Rc%)lEqw%BnzHsdN*iH~L6SD+*DKS@+CgzK9Vj=np$2!e+L}El@lsGa` zD8?m@6GaJ}GEkx)M`)-haAM%3eQr*DXa1^wwmyv?gwR>u*Uk4+y?(_Lr;3S_#iYq% zVO?Fcro1k=G&rUTzFb_4chegyBQ??bNOf&pG&Z5Keo0e9Wu$!7>ZubaO{i~LG;hh= zh+@uJFe$QhOe`|{>~kS3UM?;bbIa@N8{)yrrf7LQ8WcxYMXPJ;qru9C`l{M^Z9{!| zU8Eib#-oMh<15BrHZ~Ypxe{2sNgcZ+5^JuAL>p_TL#EjctBAqk!iuruFB@MzmWCW& zzmC^d25al_8htdls-d|<%tfkS|_+T^G6Q@Pu!Slxk zFCQTIP4L?K8mQYkD(KhvghL#RM5vXu!OK>zEEykMSzA9o7^|rte_6Dt zAvS(x`RYZBmNL+ZV})RFmhPrlG)}BYtQO`9$I8M|lqXHva1&+M7FI4VZyGys((weI zFo6zkG!_fiG&M9g1~09RFAq)*&N(eMKm->9UO1)-FD@S!oHlvvNheJ+inFz^x}hmZ z9UQEkRWhS?=HeN($IY6=y_eh%)P6Ess5)faSmTI{ypyzvKvud>9m7`WGQ!bLzC)xI(U3A)8MGS#zC_eFAq%`T&j+N zU#h-=$rJ;L8)bNtG@Pm(2hr`qiKBLy4Kcb5rBOLn?X_vVX^QkF8Wh;9h!lQv9J@_Q zubis9(zKAS#A#A9rIqPPR$wokp@}6%-OW;E>fb$1w!?&S|C5c+w@2YDcxe55X#IO= z{d;KrYne>?TY_3tQzrXcK=x<9KY7YRzXr3v`t>K5i{I%d{HN>RiT``ozt*b#53YZ) zQg*Bi=!|&~>)-LghWcnsEis+v+hFkER>H}+gIozK-%G+%oy-Lgmf!YeG_8VCE;RaC zL|e;|>mXz8EZ0D3>htfepRw++tmDjeEH%%%khRu}(rMOzht}P=fK6U^TYE3vqB8w@ z7(RY5S4Sz`?Q5@&Q(oMqG=03W2!>BuTS#fDaevnpDXo63h4=}5tmrL^^c3~`Z&|0O zY`{cSsnm=35>Y1FMTh7WLDv#j!nM`a?FzU#rRAS|?;X zrs;GVEyq2*&St|m`qJrgOaJLxN3f6er&Ho_9pRY~!q~~e@7b*f4%`45|LK7P7lM}m zj2?v*VjJk|pzC+xlXRf3<3*q$2r18dA9|oez@yD|*;3(J9dI2nFw58O$_fyl?tTVf zZyYJ8Ew#Q39g}_u>amq{a|82p3r@+)zSNfxCm%jz+~m=?;*~b%f!+(d=MZCdZeYE8 zZjRTz6eUY}71(b<{xTJ&<(?OYkOGyl4!`R=apQ|(+=hJaNRpH7d+^(a_jjV8Voq-0 zTkg`_f}1?0xxpJVN^=Wu$PDL}toMdp5B&er16d(%OSe~2-7tOEUDJU|usl=h(d}~D zhVTkZh~YA8d}p0*!PAB%4R41lT7WO@(njkT+O+&{Umf5l5jMF)#5TV9-rqF&`M z!xTM6(P0CCxHMW74420xzi9FaW5syX zNFEf~we%rr+IW%7Df>?9zX+z(U#IkW(QH@coYc>TpGf_sBSOsQMRW@N=fTThzK@TY z3lFP^bMZ@6F}E-4CWzcF-)182tS5{=1=zy( z0d|>Rev6X6QN;fjr31bPVLS6HN*DMZMUyfQP&()zgr;Q*7i9|l55g!O@S;qKKZ>?x zx;Zo5zkp16I1}=JmoS-}3Hy&AV_wcI@jpqWWO3$P|F}$K{H`)U%lv2(NDfcwQeJ#B4gYRPBN5ksvM|PUhaMx%uF3LMDfF-9u0X?`Y}+cRnRc z=ca20L`$Gx#?&?Uk( zR;J4WZRiTuaWc0k@N0C2>-Y+`-hE}@kCeT7EoVEf417Y_hc|Jy{mQ@r%I^6&XS>!8 zE<)>EN4j2?;0IeXAZ}$-7nwm-|cb zxrW0F(OB!tw>Mh?*dsuR%Rl?T40-vpaLj+EyR^38# zi{I0(H9scn|0Kz6MJ(BBlYEzs)ush3>9R?#r*eN#&XQi6q@E-{yqqP0S*pEU&NV2^ zcjv7vDX~h}SAPt?u4@z3=)R{}vrKDJWmxldt(heP5$dxodswquYd)(rztWl+B2Y+2 z=*Rh3_xL^HBwa7kqybw9zAl}{weKghSTm?K3y@{arCJlEFQ&FWRKuEOT62!pyh3ZD z^euD*f4Y%18?|N~Y0@~oPiqbnfjsJ^N1kBKgx0)GYj$Z(zX%*jz4X|7tl6zKJCF^0 zL^ghLfF*&GRa{ax6H0Pe^NKAj@q%No%6CACTtuGg-4yYZhxw z`rjzrf0#cWpkvapmNnOD&2vff2aw#XHAjg+JK5ZMKWlE*n%5v3*he;=+rg3!o8$%R z$z5-%HJ}Jx&&Z4AT5%CYF6T;vv-w-DLfrbcA0V#gdRs(n6A#Phd&HDiKeD zmm%l_`fB+&72QkAN9P*)cJK}@9}g`b;lckqmydtKr02?Vx~=Q`A^1KmAG0b1try>F zmdi&!@y+F9Unv;WHsm1@^RERIrp`ek0;ZT!n08?A7ek^Y?oR--v2yj zH>>62o9{~HwS$LZEV>4}Xuadvm{7~fQ(eO`KYKQITrqeI$=AE4aK86)xx9SVbvozU zFCUyi@~>PgIN#lzf8z)_U5r3a(B_9>y>QI$Q9`}kJjNm%y6PJtMilbiM9JkQ^&L-7 zYPm_h$9Z$PSqGL{ZeB`BW4TE^BeA^4a`Oss_&iUtwk`5h9`WKTWDB4fGvGcBUt zW0A4kd`XLpg`-z0h@2i0(Mpv1l$pj#)B_HSsC!xDlL{hdq!v+6Gt*e4ov3@0etY5X}3}n^% z^)i+O7N~MrBG<3Cu%yH)Ve3BvpRJ?)a{aoUHBZr+w_&pa|C0y>2dWB`IU#GEVh1MK|tXjV=VM(J+BG<1gSaPLR!q%?>pIc?DUvFW} zcCFcftXjW5$dau#iCn)v&yp^iM6O@oVM(t|BG<29vLp~zM}W(b>(^nJDsTm1m9VcK z2fnVWT)&1`vrKCqfh=pDr8SN9>k8KF)|#bS^D3=rtY2?oO|ekdi!^Bv{YYz~r{wx| zJ8K5D=IvVZHLYo^Uwc@yOl$7cn*Y+8#`<+Iueutw=3hyZ#_6$o)n%+-XR>BOYaWIy zYo4JsjrD6aYj$hR*~qH(Yl0<#Q&d}d1XEjY)i#Xv>yKG8q%~WS4xqiKnCEZpD zTmL5b>_x`k5=44jV{-GeJ-J8Z4ss373LJ*> z_GpoveG*tWORA&~i`-(@$-_OlCuYycUYJj+p@Q4y40q)t(lrI)OUZX5#P7|9&A}Kb zSuWQ?h-Lb=G4i{pm?xI6oG9%mBC8xtv+~OPLFRp*)=FqFjxVjSfxdi=d*5XR! zu=(BkM!@hE->JBx;J%r5pVRIW>|EYcy!Gd~@#eK_4qbbRKLM0vazb;giT;1@gqq6A z3HZmok!e$knxa+9%j5E&`A*=wGZSj-E9;u8qJq^`W1|5+nx(9FEMA4TC-GJ#+7n;X7>yx`=>zQA1|(5YR7NL>TOXI~nH9~ob@8Iw`je>f z^1aBaXk|lHv?&6MWG90pez%SQ7x?mhtEe};?bIFZUf<8$N9S`_xx8`j2fn-9M-N%Y zJ=O00p_6(BxC>prAM)RwP#rh4$31$e?-DY&op!!EY44sqlrwi(Gc55j3pag8Yuqp< z)2zxWldN1cgp@steRqJ;Vf37Ehi|jHZm4e(RiXAt-<|G-L#6#E*=|_cWmBHjCNAd= zs21mYDoxgCGWD?QFllSWQ&5<$Y_b2i=cc!{*pG9s z)_j|-MF($-+qf@dxTRkIwymS?@cr-!9z}!TU;ocW(Zv7hQKT<~hxa#%?sOkLwBJ#* zna9yRzI)u`hJ4`ri*E(F?NhYV!ziCKGz{IoyJ@dSmK-07( z(L;Q-Ps686^HCy?KsiEAP47KCLds2J$H);fjI0gy$q`~$JGe1osT%x;#>ip5DTcLE z3~RD({f!cfHE!q^7;&<0)KaIlK3dA-x58|x8gs)f*5*6v*59bJSmS=%@3C4t-eGNi z`lH~i+gR$ieHp5ymrzUpgSt^mJpZsh;XsS6W;0cD{-2NY72o|l3H`hmJ z;glF{!aM#&E6bZIm(Ripw`kgwU{Ou52`|Kh^?8R&T;x91@VT4 zy4VCZQy#~g+v-#+PqCt|p}r>ATpz2gsmDVU^e};up*Q5&xKtupY&rfTyj@+gSXg^m zlupq2Pw)-Z)seV}EId7e47~03~H$4h&di(m;eOQ_)<_MT15v%JHx3(;1W?diQ72 z)M@-CeQMQ3bxph~(ZwfK&QzFct)HcVRCk-qUUz(fg1<9S-(YrHw7yCkv-TDg>&k0l zMhi(TQrV2-+ECZLQg(1s1!Whb6#ZQX5oxHaqQit&xpXO|RW;Grk|?@dwN_R*$(Yev z*t2!5Zm(#}s%;5lV+e@NNg5O&+x|#Z%K6gPMwP3AFn`+}x_7lU68ycha<+V-l ztY}kpd1Z8J%>>1oIAKZnya{tppSSR|1=`EMmeWUK7mZEs6YBH&=xWT| z)b43htaCWeq;!;dgz&5rX)Ldr2wf1kH4)&6Opzqb{2?1hWi{6~$D+W}tc357n4^R(7NJR)1@=Zfw8fucP#Rk=AL zV1!1jB{5&z${+h$6f{M>IN)JJp={n;m>asF>gF;Ll_GX8%w zmqnF}MzeMr%^JbdANb&X4W|~i*pCmi_*)r`h*C>8qW{AtveEQEk zq+jCTKdSipDKf9Drl5b1MfyvWzUF_d`1%Pl%^!fkA?fSq$29*K#n(@ZA)d}#Nbwt$ zea$~#@%58pnjcsEcBMa3*=bk&tqwjt;Y0Q5a`2y5{9XtD&x)^~2h;W`3d;Sap4`&> z5sI&${aUT+bE4wwC%uA-f3D&S^%T?)#b2fPLB*e`_}|g?6+fW(^pDx8KKcnQ+(zMz zo;D@Eeje*W#s9nF>!+^@6@O@k)Ys2mX}_JU`1(mJ8lSW+Q+)kgm9BrY;_IiVXkMW0 zHpSP^Oa+-M#NCRopP178pDMn7UP|*j6kmiwY(egYpyvRny&(txO~p?*_#c3uYP>%S ztK4t%rRC9Fie+3YzV07mTr0jFkH)xm@Qrcp;2Y!G!8gXW;_LBijB9l#So4i>?cf{Z zTJiOGG{&`qZ;WdP-x${pzA>&9UyoB`Ts!#2xOVW3ajp1zd>P}~!8gXWgKvy$2j3Xi zVR?MDePdiZ_{O+a{G@TM_(A0-#<*T6?dx%2jBCYD8rO=SG_DnYfU<9lYsF6**NUGs zuGM{8?YG9bR{W%Kt@yhB#<*7eq;akIx*v>j?cf{Z+QB!*^{KMoyEhI}dKa7CB!1}?tZY*Lu$?L;uN(d3w`-WMG8XbK_(8l?=UivrnnwSA@B`3yu0J14qkjeSlh^H^ zq|tvS4gXKzQ@PH1ew;?%gNZ9>X{SyO27iz{PlO%U3!{in=LN;jP=I3asXsTL7-CLT z@#(FC0N#phEGttSN&dq1NxptLN!igiHuY<4<=~SYXMe6#`uhIxIjWQ<=G%(oOlunc zchm461b-0j@jL7PIP2#mJ^DMH`6;gBDx2c5cyo0%ZVg8wr_5a%S+wxXWs!)$J>6(c zZ49BpNPK0a5>f4F3>sApk(#=O3Vdz13RmB;NO|*WQQ5Gvu`U{qRuxa1JQabSR7wcO z*4IYLo0`hkM56WarZu9v3Guo}RrAV~YXGt2BG8Q6RMjo_bhorqhD<5m)<;mIuLxc0 zNFYKHX0SXt7SvCiNZE8omrRRJiD}O%F=Le!Z?cAJtRZnn4Q=7_6fzlROAf#Qm!>8* zi?%x2Vu4PHY0VKWv-NMXtS_9sM=Uo2Y;|@lDP1iKz7KXYhlLR*v(%3f?P=xIclKn=9;~s(Sz6Wa>(Qrph z-Zpz!0)COm{H3!OmqtoYn}=yn&Vf2@n~88&Xx@3J&0f54F0?EXZYo%~4H+p7D{J9- zOGRYCqSNQhUKBZf{`@mbmqnJ%p0lWwO2E@Km66I=GtY_gOW>iV+l zG&aX$c1|Q(RUR)F)tHB4QHMy{<60oTUt8}K6H?y(6V;7$_ov#aQM0n4UTSa;RK*%1 z%ggJl>Tu(c!qfBwP=w;j*1A&%Bn4(CB?o3Bk&0MM6;HJj)pXCvUV~VwYE^S^*sd6f zEL%KR9jSu|3X9^{nw7Zg02*(Sbh%FPU9d(`jE~Aki)YVSSQIa>QMsD>=3;u%sj8^9 zN)%IWd3kKPD6U#l4||g0UK~qSMVn&y`n)X@fvhQ7S55$xYOITkV(zlyINc5?rqdy0 z4SZOOqs!F^aCsH5IwukGOehgLy`mCouwK5hwh~1*z#w+TT#B@aP8Y>EF|WkQ7OK&T z<{E&@>v2O;XKU-L8+5w7qM|9fO6Ta?_c~2?9se6PiUZP`U9V@SyFrmQ8OJeMu_<4}*!#5#x z{WrNotV^#+(>6j9mDl7nB(m|-_-*bGa`e3nChE;CJYtG0^^?XINU=B@6d@f0 z-{A?dq=T5)Y9ulCWW%~$j0}C_LYJ@a7tp(hv<;KQsK3_J^b*MFn;ANPMTt zpRrsOsN*V9D$CMoqHXwD@%p|;yTWg^DkH70?=`)}fe(2@j0mX;y*h=n#!lljmA62BW* zs-nj0`yau6@PP342khxkYrMX{RH*P>s{PtOb-lG8ybr9ke0?8ke}v8V+x`z7c;kLm znZz%b#MtZdHQft|wS0XYzr0LBoX1-=$FTPWQe;cFUtcfRl}VNU@N^@JY?erMW3Tb_ z=?v?p%h#0NjMZtY-tA>F*KTDZ?bJOi4SsC71paEM-GCE+bQ=8LRT4*U*jqOzeqtK@ z`ZW?o?-*G(Cw`W~JNs|S)e^N>A82JnpL}Sl^S7Oh_cJW+sRzIvT?@ zqBeNdVry%BmRcW3711gNA3?3!V13ZmdZSeveBD$j} z$Bkc*B}8RP(*w%1re3Az0!_oO&?y;(&LAf=9WB{HQ(Z%%R9<2Ws-&dPpDnYR3K3ui z;i#_ui#Q8f$_Y&`Q1vKPRO2X1xNL>XRya+&RK+ya?W4BQZ<(^U%o#+E@fjNA*11&94-fs`66xORs95rYb8Y*Ho{VK6P?UMNUn1 zUDKMJHHFi2rccd{*5?**yU9N3E;v&*ME7F=JZj%C{KyAL{`Ba#?|x%o+wX4a9+G$F zOTS;U_x_6y5?23^JnU@@G>0V79+iSWE(L!|3jQf6_ysBWCEy3}vu{JeNLJ5*DflO) z;0qjwa_aW!BHGYcT^FkqmGupgI?>P+i;A)p^^Gx6Szc2gjfl!i8mnUFmCO#T$Y^5gt0D~(;sQFWGXoI`uynqO`bi~{}%@Br~pZ7jzQbO|Jv__~L z93R6zYitlH%2$!n-tL3g#$QZ%>ax9EoL@nC>Z-jRoIj89F3NA={8GwO*X(WQ{OOdZ zF4^10`8kxQuGkyr{3(>DF4)_^`2xyQ)AyEgej??m$$OU|pa0py*4-C{THg;ff6%*R z*}`2NOJ)W|XxGl}Q;F=#Ne_yiOQ5)~GHdKSA+}$F4q6_{X#fc|AIJ=~et3!V!soWb z9(T;X3!fp;!S1ZFapG;KoYvoYzy$9PqADwXae|2QVg}c9@}?esI^n# z-&gqftd?^FaLd8Vf$X^g6}hm}-3XTB%jc+nL(Q{Beh&(& z86a6>#oj0=*}#EpsN7ZD<`mf9_P2X!|5G3B+XvA8u7R|_ zXAtf0%b@+{OxoX{Mf(T*w0~#_?Y9i0{nin*e{>}6w;fIU?W1Y`4JtzdV!nuLNoTT8Q>tOKAW4IkbPHl=g2`(SA<@?SH?9_V2`L z|85)YyW461{ubJQ&_Vl;x@h0iP5X~~Y5%EkVE=i5_Ps&ce^E;NeR0RG;;-o-eKLJR z@zvZp(VSV+ZkCclCIO3z1YX81m-guN}?nzAm`pc|JlfJ;z7ks!!>R+j^k& zvBGZ-9;|F_nF$g?KZrRvsA#uK(k>5Z^V6gx*7#(?dBx}rEyRJd_#kGxJV>8OU>sZyy0dQiyKd61o=cJLS!OVH zK6#8$+p_@Zc?qJ<7Me^#oh{!7Y3poh1QDGrG^mh^$y^giNOu&Sb7Yen$jCJ&`}u}w zGl{BAqUnaHn?z?y(SfXO;+l@EYnm}l!ailQwsmDa&Q6o{@UzVwr|mr8X)S(dJI#X- zwRSl=99=uR)0w>oE)2fdI|KL)%ip0Y?ie}G)Xn#O#of`pLG0}Dv_89`cwg4GYl^AK zT|HUbIvme3Bxr_2C4`+K$EfuhsPt?~YK?l%Y;CjI+IW*S%(ANIy2;wNwV;(eII_BpfGKmCt{Vq%>9 zgB0(CV&$$DI;+xj+OiahZp@!8%jn2EkvJO(L85cC=sYdDK#MLyg5h+wX4DETs?efJ zB)aLK90)acIMm?ywL=aL#Y!tBZoNPW0NY6|t!hr&)Qw@32aY*c;#5g48k++?I z#1=|qBf;J_QR__7I=NaWPwNyQ!3L*lo#|SqQ0ttcb!H;Lh0fMGL9H`K>&(+S^O2aR zozz;jvvwBT4`s3HUK;0(2CE1kTE^*0x^96{MZ+@~) zIi|9`b3-vZ=Faz>7zyN)iBj|su=wN*Q!zH5yvQU_8`H^UL;s~01~V`2nklsM1qU(Bf-i;kYMFuNU-t_c>&X%8nU@^TJ1c0A|0B}DD0KWhM-~kW-9s~j4ArJr_ z20=kvKmd3I1c0p|0Q?dJfJZ?9cnk!9Z6E+V4uXQVg8=XZ2mnul0Prgi0GE!U0C)ogfHy$^cnbu8w?W!)h-h_`riS1vi6Ka= z6hjc#2mPFIu1GZmSALFK$RX&r4?$OG0)`;gMx`|Vwh6uj(B}oq6~%X?m1M(jK16!> ztxpU;RhVV?>GB*e+KWuGJbLIet~eKI8-c$yiEJZqJ49*(da~9xq#l7kkTz%ps;c%k z0>5J_k;0MkRJ54})_g9Jmq+PY>(|ghSIZ;1zaSN#AjM;$*x3?<0(_(h1U@o{)H_?| zg1|@Sfxt(KLEwz@LEu{pKsq{GLLhrOTNZ-A(@qBg{0tDlOF#f$1OoV(Ab>9h0elGv z;AepVz7z!T?}Ci%Y*_{Z_;L`y&jtbfdmw+UI7Al1O)I(5WrW0pb}LefLDV6elZB(t3Uv+0Rg-g1n@c# z!0SN(ZvX-O`yi#b_6Gqx3Iccx1n?#hz*mC+PIDySbf5s|Ab@WK0sJNq!2cZt@S8yZzXb&FTR{N-Aqe1`KmflDq(jX& z?!NO4vHrF5&ENK-PIA5()_1<4Q$FUKjzi5ik4P)Y=9{-5N;2Q5!ff-6ERW_JYmrIj zo7tu!ZSzgJNo1RELJ+C>#@p|FGgjK5`9@XMHs9>Q9AN}L9_is;x=u&1Olv)`K=bO-dZy zqy$GdDS_x_E5tHf`N5wNq*tZmQ0D0;XkWJ^qny(ypE#Bi*ywV3?zuyQ#LH zKqRA^gJg6QL*EqLL@tIC9Hs?|ZVu8Nm56Tkl9BsN_7l;~>@y+SU=k&wo24XbkfM~) zO**ue=q5&VKg$zybaNBz8{Pckhuj^9h;DY6A-70~ZEiR~wSF?GweO>M%+by4#ij}@ zFj-3s`%49RCL0b=8Y!caeU~y6r_rTP?)v!c2EuFCIPkKD;d@|D*;&te!o=+h(dh$vrvMcR< z&)zGxv!=zDE|c1}vnKmeJ4DKt5Tc^xo-Q$Qo!m*jbO{s@j>$uvIE+ZaM-Ev|MdDhD zlvD7r)P;m4_{cgGd}N*3S|^AE$7SXq!3O7Po%vcPq;*c$IweT3!85ha60NgT>nzhc zXCrZ~Q#oe8LCikBI)ojnE5$7-a}d+wt3$huqhb!@A&5!cW(i_i-186rk?8gu6fGAk zJaY?}RPK4`AZDTzeX(ls$(X4an@`?m5+z)Xr}QfzQa+h7h{-;=T-u<~V{UzlN&e68 zCfb}~wE2BV)l~apI`(2)(fvKrC8w?NOVwQ9};v+yk$QUaY`IOf^Y16 zg#G{K~u!rRS3OpCXV|D)mU{RT1pbWvl!!DRLScM`r}_kR?kr{}{DVvB$MVAP{XFlrkTjM|O_7y2X;jCu+QM(sd? zQ5{Gy>RBWh^*j=c>O_JIeGv&py^I8-UO|FUuOY#xE+iQBIueX}0|_qlEhHGV2MI>~ z9tlRhg9M}AMS@Y?NHFSsBqr%Wr^A-NNi2sFVaq;)uK(rGRjHOkTYhH@I$PLMu1`3Y zk0nt2% zkwnCvmXf-RBqH{-47mmwNkr`FY~&DoqDUgv-sgY-K#@cM&I18}B8dQ800IC-5&^gf z1OSR8qM%X`04S0OzzPrmD3S;OMG^s^NFo50AOKJ#F;7Mk0iZ}C02E0CfFg+iP$Urm ziX;L+kwgF}l8AyDKmedfA^?pb08k_mfEWk>)JFiU1_6K~i703d2mlmG1Yj))02E0C z;BpWED3S=k6(9gmB(Xt85&@t{A^=x|06>vM04S0O07Vi3SPudKMH2PBgMMRqeFov- z-#f6J`A&KZwMZGuQ}+(G&vYAyOkS<-G$w@qJg?pb?lnmS-7(AHI=jf8yT3B{Z-GaEZz89VD(w zt|i6yV574|zyaVR4iNZ=69hiu0)daDfvo9laf7sVws=6`Tj?Mjoh@DvxR?(FxB(!* z4Fmyh5D0J?Ai!mU0G9;Nn1?gS9vP6Poi8w9us zAizxo0q!Ia;3k2TcDCez0GA5_+++~o@<4#g2LY}C1h^?6z)b}KZW;)Roel!r$soWL zf&e!I1h`W`fIAfgxS1fp%>n^#HVBG64FtF#2yjIpz|8>xZY~IL^FV+r1_5q92yhEP zHmfT;kBZ(uo;d9iD@7Ed{}ErE>a;uKbyP-<_>nRS!Pnc{u6coc&m2Uv3~{G~B^%-= zLZpXy91C!(^~3`zu8`wndLkeP5BT?)Pb{n2TXu6DxiH({e$phe4emQ2QiB_}=~m+^ z0ySY92}K^)bKC_o4!7n(;3M~dAX0TN2wdepkY$}MKLdfsYzC>pt$7gm*8L!W{{jT? z2S5OS5CrgtKmdOj1n?~&fIk8P_*M|We+hz0JPHE%V<3QU0|EST5Wu&C0R99B;7@`8 z{wol`p8^4#9z;YXc7Oo>3<%&IAb{@#0sL7Iz@GyF{CN<-UjPBT69n*GAgIKPAb`IF z0{F`yfd3i<@K-}Ab{@%K_y-X0sOZhfWH9(_?sYrzXbyL+aQ4N z0RjAXAb|fK1n@tApc3zZ0RBf1z~2P{{69bd?*;+`t73h?T-i z()#t1=2Tv?{nv(<1d@7*zVP$o!m|HpORY4O%vElJD2c165|g-!zVf3!>*vbvtCtf; z$L1_>2Wg&MMOD@2DwcI;t*J6LSGfrygu$S~ zvNw^dR2w#S^?ddc-9xU-%^G_Rl!Rz2`d(4%!J@Mlw(c)lzOePpqGcsFj30Si0IyWt zkVEvlB@;f(|3hf!KV0;NTF-LeLoJ`h#%Kd2tsj@P?wL!t*Ee9O!#%|7b~+ttzzUa6kO3MkV$A6Dfxa~F zAaDAh0fPn(NFOjDBi%c2klW)SsStw(rn%iP=5~3oVej_9vd868&2*=^l5I|>lWO1{ z;2Gvap~9O^dvuP|IpU}RZg*yShR5sk`vztDooQ(vj~B)>-02>-)8$IzKh&AZpNQ8f z9nLhD16*o>Y2z0)eGa!Por0`TGs%pk!!ENBTsEh}Xj?%~%iqv&Iiyl{oGR#Qo4a z5x*Ho*W&jW(w!0;N0D)Q*|QqIddV~GPm2e|9Mu1e_+oLE_+I?{c$p}VSC};VO``Oy z_y}=Ke0)4#OhHKw;fasux@a8gBtrO|1?lU=;OG7p{X^qr z41RDf)Pauyx3vjrIu<{H%(TU6JkouXarn_Q3pjTDY%|2n_$+~5iq93r@%bVYUx>cK zu}-la6CWKPE4~xY78BzqiJW*YN=p+y9HHT2q#Xk%?RT^5+w)f*V(ZuVVF>Nz{j>Q) zRPT`D{AnV8iYS;O7S_~6R+iNSmIlUGz?XA#@os-Zd3a@{E?ik%6Nyf)Yb=?!WNx^; zZb@T(d3er(g7A6cE5b|1N5e&DpEE7LAh%pxBIcIW)z!xW<&BZDSR^2hudXYvX{v|> zW=3NbcsV_{YW4sVv%0nxOuV(ud~W*j6_Lv7x=5hBzOJG=R$X6LRuis6#bS}{vPml@ zt(_1E*Vdvmys;i#6^=Ho2uB*K3nA0&`qji>arTM{lh#fun?OTzb$xY3;80D-Mr{hi zv55iM$T>}wllpL$Mxqk}mkkj7YJGLx%1ME0OV3T7O#KsyMguDw>zf(^msH290#gEW z&WutuM8LL%!_=DUz}ni{yh#Cc$D}}XW!N8JCom>idD5f>moK|8yS%EbaYBB<$qY7^S6SZ}psop2&&oTsdgl0wQ>#y! zRlvQ_r(UQ$jAv)7c1@gMbmfHe$5)(GeW9wE**>Mwa#L%{Rzzi`U{1Ehu221SI0e~p z)^djsFVzB<+LRlENr^MjMv4U!s~CJmX&OjYD`shQMDVIM0n zn95Lop02#9R8D@|{INj%V-KRS4D7(%jXc$Mt}&|%=w=2*K_IM(uf6K#oOM!GV{qr+No}M-E5^r3bcJ!$er;NiDtF$=}bUf;}o?k9yrniM|$8$4;<-%BR%l1>w)wj+v@g6stxPA#+nXNf-1Mvquaf-EyIUK zX&c3R`rdjer|1?kZT#o~=+T_Rcc7J=)+)4V`Cq>|$am5=IfKMDzWLtal6envh1l+t zc^#R@t#97wJKD7A8^Xh7*4X2sL2jj`O!b+p(dP?jTay-Ks`;fVuj{SL zqfgJ#rt^4whuafW`gpdL^SVEKRX$tECHnvTUVq2lUebN)xNcLlQ_;5+{YcUMih7j4 zj8OChMW>tmXu;gMrv$R`#rFw;skw!@(*gx~`P1^I7fcCcFO5_LLS-?@&zUk~f|!IF z$%7)hmOdm+8!u8hW!*{rJzz@xUwVVAz>8L^D(9qr9{fb=Z#-7&^CC8h{u|(>G2hF_ z%z=k3#5wpStC-W9ej`LqhZnbm@DNY>3q;b=@z4>No?kH2O_jw{Ke)3hoL=`+#Pp`W zFIBdJq_tBz|5WVV^azI|{d?Hk%X8fRYj8d135Smou8r|4(^sm-7lT2Yr&>4$5!ku0 z1`UoP<%?iffB}nC7bAyO>{ZA ziD|NlF4e?O2z)&~D&ss4MY(REB&<=x-CmFP7Row2)B(<$(Bo-&KSMJ8MkM#R_h-W= zybG~&|7``>!uut5?yrA9NiPZA|Dd$rOaBeQ{SBo@dY7gneUQ=t-(ZYAg}x$=YDf#C+>XGSoqxyT(WVgu;E4V?Hu*-vw@DMmm-ubG46N z^LCGN)Ig!x7b645Ixa`%THkeqIl*xm)Y^PkQgtRfZa`*}Z#`x5IMeRCfin4=+3dTS zG6kI3;`=dWrZ{qd+3vfYOi$ywb@)0+aS5&`7QOar!67jdb5hjr1-fg}W#z zykiM@H#OJmeTGzjwgPOw@OUSK=kd}(97xBOsy%2u62zq=#@w4UcPO}-EAGWPe5(5Fg!fJgjv_d2QJUT zrL|`TAg+y@FZcfmT!)vGTpPDs>Awr@aAeKkZ0{9=D=UO!@IvIA8_)4iBh_OUbFRw& zD&@wU$GIhg7YWCSJHT;nEE#;UaAeDL#o$%KF+rwF{o~2@NirAmx1j2dsh4p{-B=DkkUEzO>vLC;~*{*d%{zTd19DkPLbwk!6;W*df1RJfmeCXfQ z1fWl=U!de+1?WNa(a>{!K{Otn!h2AFwQ%^j0YPSGE1?#MfpmzdU-;lTzF&OkaU)M{qBq=LwZYZ3JTGt;Dk$oR1q zQExEQEfqw@HWE=;)G^FV=ewEF+nQ# zCu>=fXOWB}$sISdWQj#mi28f)e266tW(j-XbKvW`UPg7jZx3s>Yt3IG%bK5Q&2-_f zqPlN(V#(uk1x`~n{G--93VgPiCj8G+AKpKSHG^7{o*d=@TckD7Q{Ry0gJ-j5sn*Qb znya)XN_SCPAC9wTyVg8kYu=(YQTjZx`N;jOxkYQXkS2}OXSC)B;eUZ_KK2G{c4*Cq zwdP)}=@b5m)JuC2ZY?)gQO*H25`XzB~pTpDU;}|BI~u zkjCUIg)E6%Bx6bP+ESKum?h#(@Y2NfRAc;bcG?XuqxJH}V`cU9LVGKUJ+iJmvaW;& z|G&AeTnEQ>cUHR8CgE`BSSieAl>|zzL#ZEm-csvO>PgNg)}bw6sdZ=@ zC8>M(EKfZnvAoAR^cHYfM7_jJV;#DMM06IQ9%GTQ4*j(jQSY(HSciV3MaGKKBNar3 z16{*qQJ*r?SfY;BBI;fid8LBLI9ZFRrL2GU$O4;DH76pg7Pi$a$+Jl0!nTde za|HO@B4c5D5^LsZO%Jl%qM+6^7PiY-GpIH5wC2TH(^%ME$(rq2^E_nL!uB?nbZH5X zU~20_+J>>PeU3H78L9>N*LAX2_GnFGVfz_t=4s6rwWf1`YOArZJqjG3Yo6Bpf;4Gi zJ4tIA3)>>rEY+H$kyQ)Z^H~zNNaVt{i6!l330uDoeC~5&VS5K_c4*DD$f||y6D$!W zs?{u!3)|naBxsf(9OM|EIdq^a^O(%Rjv?uO+!=6=69Wg%1`B6FmGoluJ3_cJPZ@aX zz=cB*4$F0%HcDp+7aV!(oKX%)JW~<Ogy!Aigi0{MMzz@%PLOdP|qCzwmQRZi+TeR&V49LI3g<@9bgI@8*#bT)>%= z9;AdA)$H8r9FF@I&YNiGZRY)z*gHI@duq;g;tgfTY`T0C??F9zdH5%@lUJ6PPsTq8 z4o{z&(-^6!DvQZ~8a$cr0vRHWvkc7cMnkk zv;%Js=2lTVVwW~VqDW$*q2|>iiHf2!I%zZ-?3pW?s%v67)pfI}+43#Hib#2VMWitd zi)052I_er7T^{M(=v__S;c27pX!CftIwubGp22++^L*sJ!+WRqPUpno*D$BebBCR} zGMw2C?_E%V?j7Ft9`DoMRZw#7pq;mc_RcBX``)|EnLAm|EN?ptCXQe--K?xKeU)>D zk+N%%_otwA99=Vh>TP${4EGjz|LU!N%G=^xI9!(a6q^l6vuw$=CIQR%DH@nN)K#8f zjU!8sI*wvf7e5VCg~}8=kaKQoQ|&fW$CIfWog)*bPPf!*;o+MaPo}PQnM}>Mm?}AZ zQ{2G)X`>Rg`qrk7`>FSiU-1Z{YohfyX8Sa}WL8L?EX&)>Idnh4W*i zvAP`Dvc~eNSvdRVOrILaSsBQ|iEmc11`n)9?Am>g#Kwli5sJ z46iq<^R7JKikkYmm4T+ZX!XiEJh?$nFf?J8KRt|u=F0l-Lw|EqmbMMdMBgi--3DFbt0z$B9f!d#gZO_f|UXm~|gG?LPw1l89?q6O2Y z^ZV+_RZD6bd96ZqOj@~w!ZcPu1F3$d22$NEGHc!O{RaL@LtTBM(;{^h+L*bwpjcD3 zGHSGt)WYRWIKcHaO|`Ovll2}NOQqD;RM64E=LWR#;)<1#=#mI}S~XJEvyTmH>1h_5_E=}_ai!);eZ8U??(ZuBm7HGTVmzVN_Wmo!$#BGNsgbl9+JT+EeQC=WX; zMax!4`ZdRN9Y$x?Ob!CAF*J7zCD(lK>rL**P(1h>x=@;p~ zC|r4_`CuJRk4i6;H8(oPR#D#CKs_BMcEmoM;)MsRCUFgx%};q1^Ibw zWB$UDVtIfp#TpGX6^t%wsE?*@A$gWO;)asFLj8{&>7Axlo5n|?@71`n$)<_$>R8!| zn#ds>TlsCGAEX~A@>98iiM$*LiTrey8~xL#8dUv+b|FuxQwmh~qwe-DQ5EXzZSwf> z7fN)W+vYp;3H5nhWDTZSYWMW1<_VXlJv#n8c6f>iHAN@)%vU%uno3F>ynH#F6O5B>zA?kvD(f3}M29PAW^vkur;4)ElJUJlKksS=xr9%YCeKr2HYq^UhW~LyhO0t^8pk za8aq5#c3BlWR>i>T$dOj4uq5GBL-QTj6YITCFPG2HA(sUscdVNTtYv+ZRhLTdUpP? zR))&C_#H79<%jgLqY^Sf>Q zd2Bz?KU5FezKfqj^gWJi!6*Ad#mq>Tw)OZqL|=cn7yM-HdLRY=dA5@!^do5Fkf-fk z{2X|KPd{*mkST8m6kk7H=2Lun$B^{(!)2PEr}+BOGR-eheEndV=2t0x-mD;7)*f@U z;xDoBZ&&;V8-JVP>j%bgD~-3;6~9gCYyRhouOAlE`~e8?QM>e`Vw!(~;_C;)5ESPv zsQ6oyea$~l@%2MtnjcgAE~P(4*=bY!UK^ht=AruN$G^1xi;Axw{?hyp6kk93rTG-C zBs==SFU=pV`1&!gHL5VRfjZfN^DZYM$O4q+h@$~~! zG%wIbPm)rpSb3ugA5%udexeTyIh3 z+Q)U5jjzXbuZ^$AwZ31j$Dm^EGk1sv08*F?%uG?&UJ+8Od__ z=y9#@VC!+A$F;s+Z6DVGbr;w^uJyg>0m{A}*ZR)0eO&AN%=U4u?=ow@)#F;6A&-)v_ab2qH=zh@SI&S0Zaouj?>v7$o__9`sajowHYrY=W`W~?6<8+jC zT+`F#4l!7CoUJvXh>bploowAgvSjlEJqskTe$em7QI578w$pcgI9=)M_wA%M-pglx z-*xN-Y^U$Ku@U?sSkEk(8DtYUJ@Ixm^Hs(~=rQvE-g2|AGwE%HAtpVY{2BOu=-bzy z52et*ocVp%?f;oVpPpYzR_=S?Q@Qqfex5?#g$XC1D{Z3msQh4Ombg~+j~0z3KIU_M z9f4_|w_Nb4Kf6y2ay}y2BAe?oN;H&~Dvl(7=KA!#ewnT8=o^swwYDP5lad6}AEw-_dYc(;87; zU)xXwIWS>Hm_yXIKp=t^Dh8G+N}H4n5&g%rl~i_0ALB+O(K4uXw-|R9 z)NPVJ@PtAN`-TE~&vH-4dJn>Oi@vrVcL^( zpiWz6BHX8$ckY=*ix$p>mPx`*1q*iw!^I(GEi`Yb2rnpEJg2B6ymU~oan!Z~xp1-S*e(?mm4ENbP1BNb(_GEs?nI2y5uq&=<$ zg80>Sb}=F4{3t3L@Uib$rCnoXZGD~8;2x-m)`zRg>MCk*E0AK)^y%<01&_^jrw-^7 zmo4ZUmkozkM5C&Bs-38;Z;06H7)@5KN{$WNtGaB_Ty>-lBPJ|zqnFm=)&gj(QPL`% zLO(QXmmbM2nzJw`R<=^*R@OD;(i2G)In@;+mvU8Q(JGN!acLdwNs8NKELk0C zjN&WlmP{D3#z;*W0aU7?CMI&Z%W`8B^UtNzA!PM@SaTy)>I7I-0j$nRggg^Ugic>v z4mDUWtF10a(e*HhT`rd*Euzy!E>6s~IN3rqvZ84vz-4u~SE#eqb(QrxUAAIHV`R0? z)!+;8I!!kO{{FSSg9IxA)&g zkkB_TG+y5?$W{#cMJn9pwA8q=62EETgn~t~0T;Jp03V|7~?|ZZ< z{1y#VRA1j~db155^aNQms46ss{!fQ#(>Trg5fbL|^><#DsQ`mdD=MnG#o)FhMR?u+ z`Z_7D@UQ3tpb$YtHQ9`W8L#illq{DT^R%L(_VTyc@cRBuo5D{eBB8{9;p^wA^~^kftdoIp8~&|z8r&%UOqQ(_OfOvyuJT^ew9S+ zO@Y^Th}x>iz)dtUV(X#7iS0Z1wcw}yMo%j=Kj~wSq_M>}$>blk<12|SS1S%iA{qX| NJETU)2C!wte*^RTNOk}K diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c index d9be56dde1..d3a3d16cd5 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c @@ -1,23 +1,20 @@ #include #include -#define NB_Z 51 -void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t,int); -void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t,int); +#define NB_R 3 +void nrLDPC_cnProc_BG1_generator_AVX512(int); +void nrLDPC_cnProc_BG2_generator_AVX512(int); int main() { - uint16_t Z[NB_Z]={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,20,22,24,26,28,30,32,36,40,44,48,52,56,60,64,72,80,88,96,104,112,120,128,144,160,176,192,208,224,240,256,288,320,352,384}; + int R[NB_R]={0,1,2}; + for(int i=0; iGvBAM6k)}<8EI&Oxefvl@dXv6xR0hu;H1H4hUzKPH?>qmULb=UVaFhA+WU_2jc z=(RN)>eI^Qn?RH?BXL7*q#GJKJL$C%l9-#RK17Cj`pf55Z(w{jr-RA$!Lxk|a>F-O;;{@ACv2I!T%5_YBU$)Mj(jDDw~n5qVeU2Ei#Sl#`gI zfAbwmnel)S-~Sa+t}3MeS7kvENdFh%Z`%KN5tzgSfE!n;RF2`F-B*U%U^>*y9*hoF z<+8-285dBS^lvnn8rBRAE}Yq=|S($B+u6lfotRL1)o0LnFtD$b9 zqiY1k7!R-Q)<4q6npI*+E<~4+(Vu9YD&NJUjpgJ+BDvDajmJ(|?f!GTYJm1j%PBgT ziF1qD#$yRWzkWD8Yp4t-fJQ!EmMq(hwAy zZFowI3p{eQ9&)9SIwiL-kS-#jKAAu)Tv?>W#_^%wYpdZ)CW$y5PKHO9+1ugJbQ7Xxcs$mA*~FVop0%g1kh~lbfmplvf`m2E#+K#^ z64$6YEtWJ--MD~?2Kj8Oku)59Bog6*u(+Vj1{H66wou>HaLb(=PTF8A zMP=bYQsrYwgj%wBcjLQ*qa5kk`tW;;jFj&sn2|eT7pnK}P7pa!zUL6YxcgfW@0as) z$e7UKyXXz#S)$~fgXW;?*?e-YnOM6Edqi>iXY0(i`*q*!!$>i9Z4G0`^5&MNk4dVV z{&)_y#*^VtztJuIe5|4KA0TOw_#M|xJ+m59+?^c`uO%wZ^>{2pH8n4Ou8o0;KvVW z{;s~*mgTQ_CH3{S1V3OMwOB=Y7F5y001<$fV*2ZkWEn=LQ?}u`6%=@TZjm-`=@*8# z!pkGwga&wW#`@C-hdmfS!2;L4#U$Pdw$-m)ToH#z?|QS2AHE#1<+3wQAFvDgZ0F_h z5M<#>FNaRvkR2GAJq%UkSY(r{0aJo!NdFGNY!BynaOH@S%h5QQM3`wj68qITrHFNH`FEp)21jtl~77;jH<17TZy=Z6Zu_ zU{eP`AD%cx6_0+nbV#?*5fDd$v1UyUZU!OaPaqt4MiN*KoWRf=Vs@9;RxG|Ma7EtX zVIyII!g>kFa5@U;6|&0mlO&s;7Wp+mBoq~h1V0dkHi;BKBoH84 zsF({63DGid7$G1dP6vBVH2>7_H%mGFToACOia# z-S1{ot(ug-s)0?lC4C9%62C-2@$nbggZGay)lRhw3`PJ9l5?^oa*C{Ss^aWC`67Y? ze@wueS0K+P%gtaV0#Xs2i{Ux3s5~cz@!X~~Cl+CQOH7S(Av{-oeEVAuH~ouY(|~L!Btn*#YP%NkK=6*=X{Rj;yW&9i^jmfprMz z)D=#si=3#c97y2g#g0=jG9B-L*cFjZR+~$7bqY#!a$1K?Qc}^h$DoBCoke3Ac0JR=BNV zgm5S4?PR+e649YoWM{7~1`4Z1g~DovP*^Pj6jrlcp>_kSVW6TuS}LsNN`=wJ zrc_9&aG$8Kx+N9Hap8kwVVw*RNw~0{5f|1w^)8^{Di`7nFdL%q1Ii#92Cr_&hhdp4 z8FAZ898QeR#K(%;|T9IcT3j5{tHTaRqAu~m-A#?~X7Y;2Wdva$8ZCL3Gjm~4n1 zYrfuFE9!fVwKZP{L8-nEQY!+m)TFcnJA341LGncoz#sAz z5lO^f^x&$Z%2jKCe?UeG5K&D8Fj7=b6_n+dXS0x#hUAd5p__^FjvaQbyJNE~RCleg zW7S=gWudxjg&nKznk);|T`TNZb=PEBsP0-}$Ev#~%R+V63OiQaHCYy_yH?n->aNMM zP~Ek{j#YO|w(bFwTGR(j>beI^X%_5i5fvc7B1^IZNF$wuTWQs92 zU9i&ydm$F=37;~l542+U-?2#L@iV~OA0KNl3c~=5XTj0j7~oQbI1RENSmo`lCHvs> z|0Cw%|3?-D$Nv}h|0DCZ{~wvB{(p86cH#af+|k#1_dnGVx9|b9*Y1DB9NhmviTB_A z50lmbkoW)&fOh8pN8Hx`50qZ0VokR2|09O^5K8I)NA&p++S30|U>S}VNq{$YUgYA^ z6%Wob4_`qEJq6j&MNUlL(os+%hdf#M2TJ7~=)oV4JPD^hm|l~*;;GqR+_PU)asQ}^ z>-M_x^~SU1S@OAUUXjr?!nsb`-K!AyI*GTI9CxSo_7WbNpT_=D3Ku)cw+tfo3)bzG z1on_pEX&vJL-}-&L{eu^eU^p+Yw4O`n_3f!QERIXe6rr5dg$G$}D zV$YMmQs7(n?a^xmTcJq`Utjx+CFx&2pzgqm_3A-5eyr2;slIj)rzLd-win-2*vu7J z;F}6{&$%wVx}J!<-oW4n;-5hh2+^K+A{^cmo|I`lPv8tVBSnwTI>9>kw>T zJ$%`KmA8klCrMfN_ zammq;;!@H4f9-;pHgW`U9C6yOC3`20KNn&8ay549g6od^BvHVW_W$V1_IH8n(^P z@3$c$yQS}jtg>?o5TBjnOJWUJ=IUf@bFj?WZI}&~F>b?>pR2Qa4ld=&)Sjjy&Z&J$ zV43fEwlTFr$&!*~?puMo@%{vf8?n1 ze|WwoDCGPfS>~%%9^wUF7OV99pIwAj^I|YyTECvYegCC-^ancn127sfr@z=S%)39| zwVIwoqU;lHm@n;C6TK*Z)5pU>-yEWY%7A4)o%{nw!nIeGL9;St83u&Cf+#EnKCQ^X z*WfOedH(Z@a;wFnqbYjvGkWn~h<8+gxK9$SF`1txech-`U!fH#l}mKeLyenK7D?7_Vz=&_uHqB@9vNBnLB;m6wuKH9vzRY*|0gN*BPer`L|DJ z|Azd=THinu6IK@2nhB-ApI<>n<^&y?BPjcnVcg43^5xY<;cxZpSBQCzTiem?;AVuZ z{`>|e1aqiWAhL3Ci%1Cv-U8wyGu<<}{PD}Px)5?ZF&%(upn(P&XrO@x8fc(_1{!Ff QfrgOqe_s$yM*zqG0M$3m(*OVf literal 3870 zcmV+(58?11iwFSGq3m7&1MOY^ciK1-@2~Y=p~trGL81`L-)TzUHf*=sduiI2-rnwo z<9Gy2;s#94hHl$z{`VWnHrU2C=1ah7q}M`_<k$rH#C75xbk@0TqvP26$ELFkG5ExX*J>kl*uKUsEnFzK1- zr919fqw3YGSe89zc|Egl*(N$YZl5Eh65-3p>LJ@X`Q>Ay-L*eDqi*~7Eoonxw&`@n zBd7iPUw^7ZDo=m_(b{7S-<6}}+oXlJ!6zDms+KFlt$>1y=)6h!Y1MBfEMo<$Si?Ft za19d?6M~6^iHwPYiHeDaiGd{%OA?k8ENNIWuqK(TxKvdH`!DGV;r4$UDYyL(@=Dd} zA^h{qP0#F(dZyEc$-%8&m4u~d1$0ggJUU}$9d$>xJ4W3r=#V`qZn|TqDT8${5xIm* z68$i0C2C6%vihie_EJQD|BcRGNfmT^;{c_8x%6%@FfTg;bcUYy{$rQ$S>*_IE=JC{ zTsfk44jmpM_nSL5hvm}nx@S4);08g92E7|^9Q3V$>6R+27RF28?hMVQDz?DVBG<2n zW#ZD@jfeBCKY!k9KX?76SGy&Aj)T^nwW#?5%4T(~kV86ydER4G6O z&~ZI$Y>n*BplyTn$7Z>MFYxyYY7d9d==QMVUbo%JMccfw47e6#kG{|hcDZ~}!QXMG zl2}2JL*R=nvxp)Q|9ESEL=jL4J|bKsf*AyQeE zhBQY*TAGGYo6@*NfnG8twCqcatc0=H?+!+;37s0#R`?gl6umzR|N0#HbxnW482-@j zyXF{;N674Suh4}xMt@o3E6YY5bV*r6@aNcchAtZQk)|MY{B3N8DZwosk#}C3sMdM3 z>zha(DXMp->-sEF4v~zGPu-Y)A0DO^42CJtI{E#d-h~lk+oed7w!%f@tIinNrrD$N zxG0u zF{ykfwqG_bOH?L%fO`*RsX`7cD{nJj*<*!oDRDI0WZFVgErBu zwrf!XRmnxet1d!=c!sk~=OYk_9uV>kNy7MSiY@dCi4`XMTi>yOE;yYGFHDCD{n8uV z{@`ewdg^r3aXK(+2Z0K~IG)|yFs%VA^`$eIfC|y+r)Pb!Tnbz+!vRt3}L^s}P#Ot&rgbu$zU=yRv zOl@LMtk@N~C@1w$ETw4~ofhVmY|%)WQThsAkT)BIC?)ap3H&7!rfYXH7%!A;O7p#` z1W*?R0g^#YCv60>Tyy}_$PxlxP(d)S(Ug;Fk`_{U?kOTvnBY}JC+12HZ7qM^i%$xb zIZ^+p_O+a5VD|~_EpF;okRO@KkDI$kZte`-%*WZxarOdfq!Cw&y4W?b8OEW_L{@Z)_*x$z%DB#cxQ;Zv*+Z-b)$*F(j9oGdQ)LdFLm%`r?J3GxoW%$&IA3C_{m-_JXA?-^#1 zOn-7Qi)k2Z8z4)~3$oPMj>8OM5o3n2B%(z?7Td{<+84E{wg6}`lm*4HB1>3P3~Xrr zvV0^XrWRR=uIvN72(6%kxeO>3EdHl~HmR7PO)3;Q3=ddZ%!F#PQKX!AJ4~Uh~oOA|!pKjkN@Xq&M{zfTY;Y8ha&57U91Z-DQhjSPs`{ zNu<$ir*2)^K8MM)r!}ud+vji*{!)sGzm!7ZFJ)u+OHbWZ;;}Q;$F?`68Bh4A@0|_9_@fbMmq6|;;+AD06?{v08lLy z08}>y01XZR3%JIoCP5A3(Xa98JH>zLox<@S$A1q6|EX)@znyM_*75?t+J*pNtyyaU z2Al_gbXChkOLTWJ4g%v>R|JAdmCV54x|R5VFujrpC|swGfZNn60v^_{!bh+k%FKY7 zS}|d!Rw$UMrN1s7@N_eRabr3z<%k)ZsqE0KU_K~X<50AKP*h7oJ+(&jE6v=+GqBud1*P}D0KW^-!qtpqeN^Hu?3hEO;7(}$9Wob zr$lJoss>b7EGu3!3XH?_yv6*T-mNTmH_}EM}9?KckFg_N% zbE_8J#}c@dh#Z&}5SZ#o7zhmHV@Ia7og&kWUg6M`L(`o@(|n7h z`UBo1C%G3%NiFsDS0(iJt0F9T5R%lIq}FN@f1T7{p7hr9yc6Q-yB7d;*jpX4MBmN8 zs$^hQ2dD=qNCWhvO8|m20~$~!mGyz`~~a=u|yM8Dif^Z@ye5!vmQQAW3L$DBLnJ9o@;KE7n! z+m=!Ij%le-^bX~?!jBW_h6nZHQEm#o&c(xd zEez+C(IjqNc^t6~Q05l)aa!0PHI7*HHE1#XjGxGO&wR`;97&8mJV76p&?PZ=o+I>w zUXA>qhcPdBc7jI}%i--MMH5>!kl0iHCLHO+`=Ms}jB{Xj87EvRBH14=DCM2|=L$^oX5 zqI~fHUkjP1i3j-N0lu<@!co=ZLRG~8HIF>NmmCUTu`pz5IKY>zv7_Kb|INoBbXGiX zSx_Tu^ECac)*u;h6{F}?v=AEc0AD$vQBr^}9@}dn^EC0;UOcu}woo`U;?U>^itV)x zbhJ|7hr^UZeAxCC@Qj1PmAsJ>BriEo#y~4!s4Dkx*LNu&fUo=!hN_Dev4V$XYZ$Nf+e)xz5 zAd&|V%K;*j0*LuMN0B>U;@eJSuhiYo7^Yk6 za2!eS({9fHc;C4;>A4m6Sx5HyFQTXujh+8OG(}fMC`Uv^()sx>+enT2Ww$Fdem!~p z_EY`f4|MPcfIcLg{Nm*ZZ~lDKsD};-@(u_RKAkn{=vnzMYtZX%VeAd6CgUvqTmHMpxHJpK7uxzVVggAsc6GkW%4$oE-*ybltM6PczZj91F7d?9k#2Nvucj(#ehmUVgU%xwR|Mubio4Z4L;!4MI z2s*f=Vozc5F0s00-Zg4zz;)egPFZLv-Nuq3t6<2rm1@ zXIH0<|8Cv9K*Ce1Z3o}GU;4=HOum3gb9!bKGOL&05o=*L+(3FpWN;=^G=Fwh6JTtA g5c5N}c;bmCo_OMkC!ToXiKmS8f2uNB=>W(80Gk$mzW@LL diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.2 b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.2 similarity index 100% rename from openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.2 rename to openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.2 diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c new file mode 100644 index 0000000000..6f9036db18 --- /dev/null +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c @@ -0,0 +1,557 @@ + +#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_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c.today b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c.today new file mode 100644 index 0000000000..a9dab4bf99 --- /dev/null +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c.today @@ -0,0 +1,596 @@ + +#include +#include +#include "../../nrLDPCdecoder_defs.h" + +void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) +{ + const char *ratestr[3]={"13","23","89"}; + + if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} + + + // system("mkdir -p ../ldpc_gen_files"); + + char fname[50]; + sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); + FILE *fd=fopen(fname,"w"); + if (fd == NULL) {printf("Cannot create \n");abort();} + + fprintf(fd,"#include \n"); + fprintf(fd,"#include \n"); + + + fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); + + + fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); + + const uint8_t* lut_numCnInCnGroups; + const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; + + if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; + else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; + else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; + else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} + + + uint32_t M; + uint32_t j; + uint32_t k; + // Offset to each bit within a group in terms of 64 Byte + uint32_t bitOffsetInGroup; + + + + // ===================================================================== + // Process group with 3 BNs + fprintf(fd,"//Process group with 3 BNs\n"); + // LUT with offsets for bits that need to be processed + // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. + // Offsets are in units of bitOffsetInGroup (1*384/32)12 + // Offsets are in units of bitOffsetInGroup (1*384/32)12 + + const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; + + + fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); + fprintf(fd," zeros = _mm512_setzero_si512();\n"); + fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); + fprintf(fd," __m512i* p_cnProcBufResBit;\n"); + fprintf(fd," __m512i* p_cnProcBuf;\n"); + fprintf(fd," __m512i* p_cnProcBufRes;\n"); + fprintf(fd," const __m512i* p_ones = (__m512i*) ones512_epi8;\n"); + + + + if (lut_numCnInCnGroups[0] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[0]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[0]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); + + // Loop over every BN + // Loop over every BN + + + + + for (j=0; j<3; j++) + { + + + // Set of results pointer to correct BN address + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // 32 CNs of second BN + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][1]/2)); + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 4 BNs + fprintf(fd,"//Process group with 4 BNs\n"); + // Offset is 5*384/32 = 30 + const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; + + if (lut_numCnInCnGroups[1] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[1]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[1]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); + + // Loop over every BN + for (j=0; j<4; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<3; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); + // p_cnProcBufResBit++; + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 5 BNs + fprintf(fd,"//Process group with 5 BNs\n"); + // Offset is 18*384/32 = 216 + const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, + {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; + + + if (lut_numCnInCnGroups[2] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[2]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[2]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); + + // Loop over every BN + + for (j=0; j<5; j++) + { + + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<4; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 6 BNs + fprintf(fd,"//Process group with 6 BNs\n"); + // Offset is 8*384/32 = 48 + const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, + {0,96,288,384,480}, {0,96,192,384,480}, + {0,96,192,288,480}, {0,96,192,288,384}}; + + + if (lut_numCnInCnGroups[3] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[3]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[3]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); + + // Loop over every BN + + for (j=0; j<6; j++) + { + + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<5; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 7 BNs + fprintf(fd,"//Process group with 7 BNs\n"); + // Offset is 5*384/32 = 30 + const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, + {0,60,180,240,300,360}, {0,60,120,240,300,360}, + {0,60,120,180,300,360}, {0,60,120,180,240,360}, + {0,60,120,180,240,300}}; + + + if (lut_numCnInCnGroups[4] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[4]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[4]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); + + // Loop over every BN + + for (j=0; j<7; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0= p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<6; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 8 BNs + fprintf(fd,"//Process group with 8 BNs\n"); + // Offset is 2*384/32 = 12 + const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, + {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, + {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, + {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; + + + + if (lut_numCnInCnGroups[5] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[5]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); + + // Loop over every BN + + for (j=0; j<8; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<7; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 9 BNs + fprintf(fd,"//Process group with 9 BNs\n"); + // Offset is 2*384/32 = 12 + const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, + {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, + {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, + {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, + {0,24,48,72,96,120,144,168}}; + + + + + if (lut_numCnInCnGroups[6] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[6]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[6]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); + + // Set pointers to start of group + // Loop over every BN + + for (j=0; j<9; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<8; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 10 BNs + fprintf(fd,"//Process group with 10 BNs\n"); + // Offset is 1*384/32 = 6 + const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, + {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, + {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, + {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, + {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; + + if (lut_numCnInCnGroups[7] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[7]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[7]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); + + + // Loop over every BN + + for (j=0; j<10; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<9; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 19 BNs + fprintf(fd,"//Process group with 19 BNs\n"); + // Offset is 4*384/32 = 24 + const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; + + + if (lut_numCnInCnGroups[8] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[8]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[8]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); + + // Loop over every BN + + for (j=0; j<19; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<18; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + fprintf(fd,"}\n"); + fclose(fd); +}//end of the function nrLDPC_cnProc_BG1 + + + + diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.native b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.native new file mode 100644 index 0000000000..f8de0dc0b7 --- /dev/null +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.native @@ -0,0 +1,596 @@ + +#include +#include +#include "../../nrLDPCdecoder_defs.h" + +void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) +{ + const char *ratestr[3]={"13","23","89"}; + + if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} + + + // system("mkdir -p ../ldpc_gen_files"); + + char fname[50]; + sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); + FILE *fd=fopen(fname,"w"); + if (fd == NULL) {printf("Cannot create \n");abort();} + + fprintf(fd,"#include \n"); + fprintf(fd,"#include \n"); + + + fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); + + + fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); + + const uint8_t* lut_numCnInCnGroups; + const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; + + if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; + else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; + else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; + else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} + + + uint32_t M; + uint32_t j; + uint32_t k; + // Offset to each bit within a group in terms of 64 Byte + uint32_t bitOffsetInGroup; + + + + // ===================================================================== + // Process group with 3 BNs + fprintf(fd,"//Process group with 3 BNs\n"); + // LUT with offsets for bits that need to be processed + // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. + // Offsets are in units of bitOffsetInGroup (1*384/32)12 + // Offsets are in units of bitOffsetInGroup (1*384/32)12 + + const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; + + + fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); + fprintf(fd," zeros = _mm512_setzero_si512();\n"); + fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); + fprintf(fd," __m512i* p_cnProcBufResBit;\n"); + fprintf(fd," __m512i* p_cnProcBuf;\n"); + fprintf(fd," __m512i* p_cnProcBufRes;\n"); + fprintf(fd," const __m512i* p_ones = (__m512i*) ones512_epi8;\n"); + fprintf(fd," const __m512i* p_maxLLR = (__m512i*) maxLLR512_epi8;\n"); + + + if (lut_numCnInCnGroups[0] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[0]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[0]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); + + // Loop over every BN + // Loop over every BN + + + + + for (j=0; j<3; j++) + { + + + // Set of results pointer to correct BN address + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); + + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG3[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // 32 CNs of second BN + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG3[j][1]/2); + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + + // Store result + // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 4 BNs + fprintf(fd,"//Process group with 4 BNs\n"); + // Offset is 5*384/32 = 30 + const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; + + if (lut_numCnInCnGroups[1] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[1]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[1]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); + + // Loop over every BN + for (j=0; j<4; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); + + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG4[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<3; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG4[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); + // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); + // p_cnProcBufResBit++; + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 5 BNs + fprintf(fd,"//Process group with 5 BNs\n"); + // Offset is 18*384/32 = 216 + const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, + {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; + + + if (lut_numCnInCnGroups[2] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[2]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[2]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); + + // Loop over every BN + + for (j=0; j<5; j++) + { + + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG5[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<4; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG5[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 6 BNs + fprintf(fd,"//Process group with 6 BNs\n"); + // Offset is 8*384/32 = 48 + const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, + {0,96,288,384,480}, {0,96,192,384,480}, + {0,96,192,288,480}, {0,96,192,288,384}}; + + + if (lut_numCnInCnGroups[3] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[3]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[3]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); + + // Loop over every BN + + for (j=0; j<6; j++) + { + + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG6[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<5; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG6[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 7 BNs + fprintf(fd,"//Process group with 7 BNs\n"); + // Offset is 5*384/32 = 30 + const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, + {0,60,180,240,300,360}, {0,60,120,240,300,360}, + {0,60,120,180,300,360}, {0,60,120,180,240,360}, + {0,60,120,180,240,300}}; + + + if (lut_numCnInCnGroups[4] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[4]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[4]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); + + // Loop over every BN + + for (j=0; j<7; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0= p_cnProcBuf [%d+i];\n",lut_idxCnProcG7[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<6; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG7[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 8 BNs + fprintf(fd,"//Process group with 8 BNs\n"); + // Offset is 2*384/32 = 12 + const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, + {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, + {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, + {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; + + + + if (lut_numCnInCnGroups[5] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[5]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); + + // Loop over every BN + + for (j=0; j<8; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG8[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<7; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG8[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 9 BNs + fprintf(fd,"//Process group with 9 BNs\n"); + // Offset is 2*384/32 = 12 + const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, + {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, + {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, + {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, + {0,24,48,72,96,120,144,168}}; + + + + + if (lut_numCnInCnGroups[6] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[6]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[6]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); + + // Set pointers to start of group + // Loop over every BN + + for (j=0; j<9; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG9[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<8; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG9[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 10 BNs + fprintf(fd,"//Process group with 10 BNs\n"); + // Offset is 1*384/32 = 6 + const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, + {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, + {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, + {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, + {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; + + if (lut_numCnInCnGroups[7] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[7]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[7]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); + + + // Loop over every BN + + for (j=0; j<10; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG10[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<9; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG10[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 19 BNs + fprintf(fd,"//Process group with 19 BNs\n"); + // Offset is 4*384/32 = 24 + const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; + + + if (lut_numCnInCnGroups[8] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[8]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[8]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); + + // Loop over every BN + + for (j=0; j<19; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG19[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<18; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG19[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + fprintf(fd,"}\n"); + fclose(fd); +}//end of the function nrLDPC_cnProc_BG1 + + + + diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.unrolled b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.unrolled new file mode 100644 index 0000000000..96002878a1 --- /dev/null +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.unrolled @@ -0,0 +1,590 @@ + +#include +#include +#include "../../nrLDPCdecoder_defs.h" + +void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) +{ + const char *ratestr[3]={"13","23","89"}; + + if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} + + + // system("mkdir -p ../ldpc_gen_files"); + + char fname[50]; + sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); + FILE *fd=fopen(fname,"w"); + if (fd == NULL) {printf("Cannot create \n");abort();} + + fprintf(fd,"#include \n"); + fprintf(fd,"#include \n"); + + + fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); + + + fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); + + const uint8_t* lut_numCnInCnGroups; + const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; + + if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; + else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; + else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; + else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} + + + uint32_t M; + uint32_t j; + uint32_t k; + // Offset to each bit within a group in terms of 64 Byte + uint32_t bitOffsetInGroup; + + + + // ===================================================================== + // Process group with 3 BNs + fprintf(fd,"//Process group with 3 BNs\n"); + // LUT with offsets for bits that need to be processed + // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. + // Offsets are in units of bitOffsetInGroup (1*384/32)12 + // Offsets are in units of bitOffsetInGroup (1*384/32)12 + + const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; + + + fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); + fprintf(fd," zeros = _mm512_setzero_si512();\n"); + fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); + fprintf(fd," __m512i* p_cnProcBufResBit;\n"); + fprintf(fd," __m512i* p_cnProcBuf;\n"); + fprintf(fd," __m512i* p_cnProcBufRes;\n"); + fprintf(fd," const __m512i* p_ones = (__m512i*) ones512_epi8;\n"); + + + + if (lut_numCnInCnGroups[0] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[0]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[0]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); + + // Loop over every BN + // Loop over every BN + + + + +fprintf(fd," for (int j=0;j<3;j++) {\n"); + + + // Set of results pointer to correct BN address + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // 32 CNs of second BN + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][1]/2)); + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + + fprintf(fd," }\n"); + fprintf(fd,"}\n"); + } + + // ===================================================================== + // Process group with 4 BNs + fprintf(fd,"//Process group with 4 BNs\n"); + // Offset is 5*384/32 = 30 + const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; + + if (lut_numCnInCnGroups[1] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[1]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[1]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); + + // Loop over every BN + //for (j=0; j<4; j++) + // { + + fprintf(fd," for (int j=0;j<4;j++) {\n"); + + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<3; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); + // p_cnProcBufResBit++; + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + fprintf(fd,"}\n"); + } + + + // ===================================================================== + // Process group with 5 BNs + fprintf(fd,"//Process group with 5 BNs\n"); + // Offset is 18*384/32 = 216 + const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, + {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; + + + if (lut_numCnInCnGroups[2] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[2]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[2]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); + + // Loop over every BN + + fprintf(fd," for (int j=0;j<5;j++) {\n"); + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<4; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + fprintf(fd,"}\n"); + } + + // ===================================================================== + // Process group with 6 BNs + fprintf(fd,"//Process group with 6 BNs\n"); + // Offset is 8*384/32 = 48 + const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, + {0,96,288,384,480}, {0,96,192,384,480}, + {0,96,192,288,480}, {0,96,192,288,384}}; + + + if (lut_numCnInCnGroups[3] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[3]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[3]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); + + // Loop over every BN + + fprintf(fd," for (int j=0;j<6;j++) {\n"); + + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<5; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + fprintf(fd,"}\n"); + } + + + // ===================================================================== + // Process group with 7 BNs + fprintf(fd,"//Process group with 7 BNs\n"); + // Offset is 5*384/32 = 30 + const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, + {0,60,180,240,300,360}, {0,60,120,240,300,360}, + {0,60,120,180,300,360}, {0,60,120,180,240,360}, + {0,60,120,180,240,300}}; + + + if (lut_numCnInCnGroups[4] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[4]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[4]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); + + // Loop over every BN + + fprintf(fd," for (int j=0;j<7;j++) {\n"); + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0= p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<6; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + fprintf(fd,"}\n"); + } + + + // ===================================================================== + // Process group with 8 BNs + fprintf(fd,"//Process group with 8 BNs\n"); + // Offset is 2*384/32 = 12 + const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, + {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, + {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, + {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; + + + + if (lut_numCnInCnGroups[5] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[5]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); + + // Loop over every BN + + fprintf(fd," for (int j=0;j<8;j++) {\n"); + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<7; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + fprintf(fd,"}\n"); + } + + // ===================================================================== + // Process group with 9 BNs + fprintf(fd,"//Process group with 9 BNs\n"); + // Offset is 2*384/32 = 12 + const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, + {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, + {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, + {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, + {0,24,48,72,96,120,144,168}}; + + + + + if (lut_numCnInCnGroups[6] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[6]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[6]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); + + // Set pointers to start of group + // Loop over every BN + + fprintf(fd," for (int j=0;j<9;j++) {\n"); + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<8; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + fprintf(fd,"}\n"); + } + + // ===================================================================== + // Process group with 10 BNs + fprintf(fd,"//Process group with 10 BNs\n"); + // Offset is 1*384/32 = 6 + const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, + {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, + {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, + {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, + {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; + + if (lut_numCnInCnGroups[7] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[7]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[7]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); + + + // Loop over every BN + + fprintf(fd," for (int j=0;j<10;j++) {\n"); + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<9; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + fprintf(fd,"}\n"); + } + + + // ===================================================================== + // Process group with 19 BNs + fprintf(fd,"//Process group with 19 BNs\n"); + // Offset is 4*384/32 = 24 + const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; + + + if (lut_numCnInCnGroups[8] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[8]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[8]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); + + // Loop over every BN + + fprintf(fd," for (int j=0;j<11;j++) {\n"); + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<18; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + fprintf(fd,"}\n"); + } + + fprintf(fd,"}\n"); + fclose(fd); +}//end of the function nrLDPC_cnProc_BG1 + + + + diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R13_AVX2.h similarity index 86% rename from openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c rename to openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R13_AVX2.h index b5b4329183..d6bdfb4571 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R13_AVX2.h @@ -1,549 +1,558 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z2_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { +static inline void nrLDPC_bnProc_BG1_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes, uint16_t Z ) { __m256i* p_bnProcBuf; __m256i* p_bnProcBufRes; __m256i* p_llrRes; __m256i* p_res; + uint32_t M, i; // Process group with 2 CNs // Process group with 3 CNs // Process group with 4 CNs + M = (1*Z + 31)>>5; p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [3456]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [3456]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [3456]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [4224]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [4224]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [3840]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [9984]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [9984]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [5760]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [6912]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [28032]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [28032]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [9600]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [46464]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [46464]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [12672]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [50688]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [50688]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [13056]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [384]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [384]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [384]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [2688]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [2688]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [1536]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [26880]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [26880]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [9600]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [28416]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [28416]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [9984]; + for (i=0;i -#include -void nrLDPC_bnProc_BG1_Z104_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c deleted file mode 100644 index 17386fca34..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z10_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c deleted file mode 100644 index 72f269a3fc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z112_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c deleted file mode 100644 index 59f30be553..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z11_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c deleted file mode 100644 index 400c04c430..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z120_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c deleted file mode 100644 index 6496593bd3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z128_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c deleted file mode 100644 index 0614cf505b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z12_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c deleted file mode 100644 index 785d554559..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z13_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c deleted file mode 100644 index d91cb1b44e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z144_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c deleted file mode 100644 index 07ba538e90..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z14_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c deleted file mode 100644 index 78e3f8dc35..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z15_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c deleted file mode 100644 index cc2d9fafd7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z160_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c deleted file mode 100644 index 29ffb5058b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z16_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c deleted file mode 100644 index e44d7cac94..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z176_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c deleted file mode 100644 index 765ffaf0b1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z18_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c deleted file mode 100644 index 436effce12..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z192_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c deleted file mode 100644 index a043cee84d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z208_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c deleted file mode 100644 index 0acb046870..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z20_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c deleted file mode 100644 index 941f05c829..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z224_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c deleted file mode 100644 index 3bedc1da39..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z22_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c deleted file mode 100644 index 3e1fb14b16..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z240_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c deleted file mode 100644 index a1a9e7c746..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z24_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c deleted file mode 100644 index 95b6662869..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z256_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c deleted file mode 100644 index d67252e70d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z26_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c deleted file mode 100644 index 88b1453acd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z288_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c deleted file mode 100644 index dab5d50a75..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z28_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c deleted file mode 100644 index 82b7429182..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z30_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c deleted file mode 100644 index c1243fe104..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z320_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c deleted file mode 100644 index 6fbf2f7060..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z32_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c deleted file mode 100644 index 54bf723732..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z352_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c deleted file mode 100644 index 449662b84f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z36_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c deleted file mode 100644 index c4fa11327f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z384_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c deleted file mode 100644 index cd0ecff86e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z3_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c deleted file mode 100644 index b0a1d96998..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z40_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c deleted file mode 100644 index 094471b418..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z44_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c deleted file mode 100644 index b5384c2cd2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z48_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c deleted file mode 100644 index 1c664a4a07..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z4_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c deleted file mode 100644 index ebea97e7a4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z52_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c deleted file mode 100644 index c24d31dc62..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z56_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c deleted file mode 100644 index 3d0523df04..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z5_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c deleted file mode 100644 index b69c8bfb2c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z60_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c deleted file mode 100644 index 1c51ee482f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z64_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c deleted file mode 100644 index bbe6ddcb3e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z6_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c deleted file mode 100644 index f74cc89ad7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z72_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c deleted file mode 100644 index 94f64d1fad..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z7_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c deleted file mode 100644 index 931abd13c8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z80_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c deleted file mode 100644 index 4b88d79461..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z88_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c deleted file mode 100644 index 83032f55a1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z8_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c deleted file mode 100644 index 649308b2a1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z96_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c deleted file mode 100644 index e16be52cea..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z9_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R13_AVX2.h b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R13_AVX2.h new file mode 100644 index 0000000000..208b3cedb2 --- /dev/null +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R13_AVX2.h @@ -0,0 +1,508 @@ +#include +#include +void nrLDPC_bnProc_BG2_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes, uint16_t Z ) { + __m256i* p_bnProcBuf; + __m256i* p_bnProcBufRes; + __m256i* p_llrRes; + __m256i* p_res; + uint32_t M, i; +// Process group with 2 CNs + M = (1*Z + 31)>>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [6912]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [6912]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [6912]; + for (i=0;i>5; + *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); + p_res++; + p_llrRes++; +} + p_res = &p_bnProcBufRes[12]; + p_llrRes = (__m256i*) &llrRes [6912]; + for (i=0;i>5; + *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); + p_res++; + p_llrRes++; +} +// Process group with 3 CNs +// Process group with 4 CNs + M = (2*Z + 31)>>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [7680]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [7680]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [7296]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [10752]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [10752]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [8064]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [12672]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [12672]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [8448]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [10368]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [26880]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [26880]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [10752]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [29952]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [29952]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [11136]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [11520]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [40320]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [40320]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [11904]; + for (i=0;i #include -void nrLDPC_bnProc_BG2_Z2_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { +void nrLDPC_bnProc_BG2_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes, uint16_t Z ) { __m256i* p_bnProcBuf; __m256i* p_bnProcBufRes; __m256i* p_llrRes; __m256i* p_res; + uint32_t M, i; // Process group with 2 CNs // Process group with 3 CNs // Process group with 4 CNs // Process group with 5 CNs + M = (2*Z + 31)>>5; p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { + for (i=0;i +#include +void nrLDPC_bnProc_BG2_R23_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes, uint16_t Z ) { + __m256i* p_bnProcBuf; + __m256i* p_bnProcBufRes; + __m256i* p_llrRes; + __m256i* p_res; + uint32_t M, i; +// Process group with 2 CNs + M = (3*Z + 31)>>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [1152]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [1152]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [1152]; + for (i=0;i>5; + *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); + p_res++; + p_llrRes++; +} + p_res = &p_bnProcBufRes[36]; + p_llrRes = (__m256i*) &llrRes [1152]; + for (i=0;i>5; + *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); + p_res++; + p_llrRes++; +} +// Process group with 3 CNs + M = (5*Z + 31)>>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [3456]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [3456]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [2304]; + for (i=0;i>5; + *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); + p_res++; + p_llrRes++; +} + p_res = &p_bnProcBufRes[60]; + p_llrRes = (__m256i*) &llrRes [2304]; + for (i=0;i>5; + *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); + p_res++; + p_llrRes++; +} + p_res = &p_bnProcBufRes[120]; + p_llrRes = (__m256i*) &llrRes [2304]; + for (i=0;i>5; + *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); + p_res++; + p_llrRes++; +} +// Process group with 4 CNs + M = (3*Z + 31)>>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [9216]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [9216]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [4224]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [13824]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [13824]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [5376]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [6144]; + for (i=0;i -#include -void nrLDPC_bnProc_BG2_Z104_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c deleted file mode 100644 index da7eecd7c9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z10_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c deleted file mode 100644 index 3613096240..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z112_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c deleted file mode 100644 index ce583e8a49..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z11_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c deleted file mode 100644 index 9567913d4c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z120_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c deleted file mode 100644 index 3dcd56e4b2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z128_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c deleted file mode 100644 index a1e7eef92d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z12_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c deleted file mode 100644 index c604b9c9fc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z13_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c deleted file mode 100644 index 3a6d5fad9b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z144_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c deleted file mode 100644 index 0a68dcc192..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z14_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c deleted file mode 100644 index 5e1b4e5247..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z15_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c deleted file mode 100644 index 301752c898..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z160_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c deleted file mode 100644 index 2ff4596dec..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z16_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c deleted file mode 100644 index 25d44d65dd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z176_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c deleted file mode 100644 index d035375329..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z18_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c deleted file mode 100644 index fe808f0262..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z192_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c deleted file mode 100644 index b80ad2550c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z208_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c deleted file mode 100644 index bea168af3c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z20_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c deleted file mode 100644 index 6a897f6a58..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z224_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c deleted file mode 100644 index 1686f075cd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z22_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c deleted file mode 100644 index ff3f02c22c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z240_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c deleted file mode 100644 index 3a824bf742..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z24_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c deleted file mode 100644 index 1d251bfd7e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z256_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c deleted file mode 100644 index 9c01cb69a0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z26_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c deleted file mode 100644 index c48b6023d6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z288_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c deleted file mode 100644 index 4b02344ea4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z28_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c deleted file mode 100644 index 1ca19efbea..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z30_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c deleted file mode 100644 index cb56abe439..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z320_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c deleted file mode 100644 index d03e2e943e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z32_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c deleted file mode 100644 index 6be4e10dd8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z352_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c deleted file mode 100644 index 3e447f3a1a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z36_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c deleted file mode 100644 index 2ac44f6c53..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z384_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c deleted file mode 100644 index 3b645790d4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z3_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c deleted file mode 100644 index a9eb5dbb00..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z40_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c deleted file mode 100644 index a6613ef66c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z44_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c deleted file mode 100644 index d2a7c80bb0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z48_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c deleted file mode 100644 index ae4f4d922f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z4_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c deleted file mode 100644 index 3efa774165..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z52_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c deleted file mode 100644 index f61d8ea7d7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z56_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c deleted file mode 100644 index 6528758122..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z5_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c deleted file mode 100644 index d7a3be2173..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z60_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c deleted file mode 100644 index 58457add44..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z64_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c deleted file mode 100644 index f9c2093489..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z6_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c deleted file mode 100644 index 9d14029acc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z72_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c deleted file mode 100644 index 188b6a94dd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z7_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c deleted file mode 100644 index ac2c167b9a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z80_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c deleted file mode 100644 index 4d5ec0740c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z88_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c deleted file mode 100644 index f4b84e4509..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z8_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c deleted file mode 100644 index 83a4a54c13..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z96_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c deleted file mode 100644 index ed5464778a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z9_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R13_AVX2.h similarity index 97% rename from openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c rename to openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R13_AVX2.h index 3a16eaa82f..44fd2e4141 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R13_AVX2.h @@ -1,19 +1,19 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z11_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { +static inline void nrLDPC_bnProcPc_BG1_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf, uint16_t Z ) { __m256i ymm0, ymm1, ymmRes0, ymmRes1; __m128i* p_bnProcBuf; __m256i* p_bnProcBufRes; __m128i* p_llrProcBuf; __m256i* p_llrProcBuf256; __m256i* p_llrRes; + uint32_t M ; // Process group with 1 CNs + M = (0*Z + 31)>>5; p_bnProcBuf = (__m128i*) &bnProcBuf [0]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; p_llrProcBuf = (__m128i*) &llrProcBuf [0]; p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<15;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [0]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; + p_llrProcBuf = (__m128i*) &llrProcBuf [0]; + p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; + p_llrRes = (__m256i*) &llrRes [0]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [3456]; + p_llrProcBuf = (__m128i*) &llrProcBuf [3456]; + p_llrRes = (__m256i*) &llrRes [3456]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [4224]; + p_llrProcBuf = (__m128i*) &llrProcBuf [3840]; + p_llrRes = (__m256i*) &llrRes [3840]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [9984]; + p_llrProcBuf = (__m128i*) &llrProcBuf [5760]; + p_llrRes = (__m256i*) &llrRes [5760]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; + p_llrProcBuf = (__m128i*) &llrProcBuf [6912]; + p_llrRes = (__m256i*) &llrRes [6912]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [28032]; + p_llrProcBuf = (__m128i*) &llrProcBuf [9600]; + p_llrRes = (__m256i*) &llrRes [9600]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [46464]; + p_llrProcBuf = (__m128i*) &llrProcBuf [12672]; + p_llrRes = (__m256i*) &llrRes [12672]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [50688]; + p_llrProcBuf = (__m128i*) &llrProcBuf [13056]; + p_llrRes = (__m256i*) &llrRes [13056]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [0]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; + p_llrProcBuf = (__m128i*) &llrProcBuf [0]; + p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; + p_llrRes = (__m256i*) &llrRes [0]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [384]; + p_llrProcBuf = (__m128i*) &llrProcBuf [384]; + p_llrRes = (__m256i*) &llrRes [384]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [2688]; + p_llrProcBuf = (__m128i*) &llrProcBuf [1536]; + p_llrRes = (__m256i*) &llrRes [1536]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [26880]; + p_llrProcBuf = (__m128i*) &llrProcBuf [9600]; + p_llrRes = (__m256i*) &llrRes [9600]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [28416]; + p_llrProcBuf = (__m128i*) &llrProcBuf [9984]; + p_llrRes = (__m256i*) &llrRes [9984]; + for (int i=0,j=0;i -#include -void nrLDPC_bnProcPc_BG1_Z104_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<137;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c deleted file mode 100644 index 160bce3117..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z10_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<14;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c deleted file mode 100644 index 0e753bfab3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z112_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<147;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c deleted file mode 100644 index 673af9a9d7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z120_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<158;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c deleted file mode 100644 index 9029ec4945..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z128_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<168;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c deleted file mode 100644 index eb63f40810..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z12_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<16;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c deleted file mode 100644 index 03b80c28e3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z13_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<18;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c deleted file mode 100644 index 1e0e1bb9b4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z144_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<189;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c deleted file mode 100644 index f8d5ba2422..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z14_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<19;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c deleted file mode 100644 index c3bf9cd8c4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z15_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<20;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c deleted file mode 100644 index 54aa60410d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z160_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<210;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c deleted file mode 100644 index dbd57a29a2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z16_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<21;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c deleted file mode 100644 index b33f7eff95..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z176_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<231;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<17;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<17;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c deleted file mode 100644 index bfacf24f9e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z18_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<24;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c deleted file mode 100644 index cb5e28d03b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z192_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<252;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c deleted file mode 100644 index 26206a90ef..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z208_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<273;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<26;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<26;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<26;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c deleted file mode 100644 index 47a80af761..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z20_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<27;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c deleted file mode 100644 index 429e77bb46..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z224_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<294;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<28;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<21;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<28;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<21;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<28;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c deleted file mode 100644 index 5114d701ea..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z22_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<29;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c deleted file mode 100644 index 0075be8dec..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z240_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<315;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<23;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<23;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c deleted file mode 100644 index 2a10721f55..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z24_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<32;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c deleted file mode 100644 index 32f7cc2f18..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z256_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<336;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<32;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<32;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<32;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c deleted file mode 100644 index ec50dbc7c6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z26_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<35;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c deleted file mode 100644 index 31c6264a07..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z288_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<378;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<27;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<27;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c deleted file mode 100644 index 5f261e18df..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z28_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<37;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c deleted file mode 100644 index 9c40d68946..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z30_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<40;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c deleted file mode 100644 index ad6d124bae..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z320_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<420;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<40;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<40;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<40;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c deleted file mode 100644 index 57401cbf41..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z32_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<42;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c deleted file mode 100644 index 901bc03cd9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z352_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<462;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<44;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<33;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<44;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<33;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<44;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c deleted file mode 100644 index 4799b8efbf..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z36_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<48;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c deleted file mode 100644 index bccdf09c1e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<504;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<48;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<48;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<48;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c deleted file mode 100644 index a458247cf1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z3_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<4;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c deleted file mode 100644 index 79d4f4ae71..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z40_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<53;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c deleted file mode 100644 index 5e91ecb0c1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z44_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<58;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c deleted file mode 100644 index 7e7af0c1ce..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z48_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<63;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c deleted file mode 100644 index 06e7bc8467..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z4_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<6;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c deleted file mode 100644 index 6954acb650..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z52_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<69;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c deleted file mode 100644 index dd4d169cb2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z56_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<74;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c deleted file mode 100644 index c3943c0003..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z5_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<7;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c deleted file mode 100644 index cd4c7ff1b9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z60_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<79;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c deleted file mode 100644 index b9c661f6ca..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z64_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<84;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c deleted file mode 100644 index c223a8b5b1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z6_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<8;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c deleted file mode 100644 index 0711e1b370..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z72_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<95;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c deleted file mode 100644 index 85384d8d39..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z7_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<10;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c deleted file mode 100644 index e7e4c7b6f4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z80_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<105;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c deleted file mode 100644 index 4d694f1874..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z88_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<116;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c deleted file mode 100644 index 548b9ab4aa..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z8_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<11;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c deleted file mode 100644 index 8db0776e95..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z96_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<126;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c deleted file mode 100644 index 44b8a15b39..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z9_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<12;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R13_AVX2.h similarity index 51% rename from openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c rename to openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R13_AVX2.h index e77a0c287f..4ca040e27d 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R13_AVX2.h @@ -1,19 +1,19 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z2_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { +static inline void nrLDPC_bnProcPc_BG2_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf, uint16_t Z ) { __m256i ymm0, ymm1, ymmRes0, ymmRes1; __m128i* p_bnProcBuf; __m256i* p_bnProcBufRes; __m128i* p_llrProcBuf; __m256i* p_llrProcBuf256; __m256i* p_llrRes; + uint32_t M ; // Process group with 1 CNs + M = (0*Z + 31)>>5; p_bnProcBuf = (__m128i*) &bnProcBuf [0]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; p_llrProcBuf = (__m128i*) &llrProcBuf [0]; p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<3;i++,j+=2) { + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [6912]; + p_llrProcBuf = (__m128i*) &llrProcBuf [6912]; + p_llrRes = (__m256i*) &llrRes [6912]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [7680]; + p_llrProcBuf = (__m128i*) &llrProcBuf [7296]; + p_llrRes = (__m256i*) &llrRes [7296]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [10752]; + p_llrProcBuf = (__m128i*) &llrProcBuf [8064]; + p_llrRes = (__m256i*) &llrRes [8064]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [12672]; + p_llrProcBuf = (__m128i*) &llrProcBuf [8448]; + p_llrRes = (__m256i*) &llrRes [8448]; + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { + p_llrProcBuf = (__m128i*) &llrProcBuf [10368]; + p_llrRes = (__m256i*) &llrRes [10368]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [26880]; + p_llrProcBuf = (__m128i*) &llrProcBuf [10752]; + p_llrRes = (__m256i*) &llrRes [10752]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [29952]; + p_llrProcBuf = (__m128i*) &llrProcBuf [11136]; + p_llrRes = (__m256i*) &llrRes [11136]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; + p_llrProcBuf = (__m128i*) &llrProcBuf [11520]; + p_llrRes = (__m256i*) &llrRes [11520]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [40320]; + p_llrProcBuf = (__m128i*) &llrProcBuf [11904]; + p_llrRes = (__m256i*) &llrRes [11904]; + for (int i=0,j=0;i -#include -void nrLDPC_bnProcPc_BG2_Z104_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { +static inline void nrLDPC_bnProcPc_BG2_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf, uint16_t Z ) { __m256i ymm0, ymm1, ymmRes0, ymmRes1; __m128i* p_bnProcBuf; __m256i* p_bnProcBufRes; __m128i* p_llrProcBuf; __m256i* p_llrProcBuf256; __m256i* p_llrRes; + uint32_t M ; // Process group with 1 CNs + M = (0*Z + 31)>>5; p_bnProcBuf = (__m128i*) &bnProcBuf [0]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; p_llrProcBuf = (__m128i*) &llrProcBuf [0]; p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<124;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<7;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [0]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; + p_llrProcBuf = (__m128i*) &llrProcBuf [0]; + p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; + p_llrRes = (__m256i*) &llrRes [0]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [1152]; + p_llrProcBuf = (__m128i*) &llrProcBuf [1152]; + p_llrRes = (__m256i*) &llrRes [1152]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [3456]; + p_llrProcBuf = (__m128i*) &llrProcBuf [2304]; + p_llrRes = (__m256i*) &llrRes [2304]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [9216]; + p_llrProcBuf = (__m128i*) &llrProcBuf [4224]; + p_llrRes = (__m256i*) &llrRes [4224]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [13824]; + p_llrProcBuf = (__m128i*) &llrProcBuf [5376]; + p_llrRes = (__m256i*) &llrRes [5376]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; + p_llrProcBuf = (__m128i*) &llrProcBuf [6144]; + p_llrRes = (__m256i*) &llrRes [6144]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [0]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; + p_llrProcBuf = (__m128i*) &llrProcBuf [0]; + p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; + p_llrRes = (__m256i*) &llrRes [0]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [1152]; + p_llrProcBuf = (__m128i*) &llrProcBuf [1152]; + p_llrRes = (__m256i*) &llrRes [1152]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [3456]; + p_llrProcBuf = (__m128i*) &llrProcBuf [2304]; + p_llrRes = (__m256i*) &llrRes [2304]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [9216]; + p_llrProcBuf = (__m128i*) &llrProcBuf [4224]; + p_llrRes = (__m256i*) &llrRes [4224]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [13824]; + p_llrProcBuf = (__m128i*) &llrProcBuf [5376]; + p_llrRes = (__m256i*) &llrRes [5376]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; + p_llrProcBuf = (__m128i*) &llrProcBuf [6144]; + p_llrRes = (__m256i*) &llrRes [6144]; + for (int i=0,j=0;i -#include -void nrLDPC_bnProcPc_BG2_Z10_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<12;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c deleted file mode 100644 index d32d9f5a5a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z112_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<133;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c deleted file mode 100644 index f4abd64e20..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z11_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<14;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c deleted file mode 100644 index 192f387978..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z120_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<143;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c deleted file mode 100644 index 7c87845b5b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z128_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<152;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c deleted file mode 100644 index b640cc9b50..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z12_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<15;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c deleted file mode 100644 index fc400c6368..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z13_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<16;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c deleted file mode 100644 index 8f10c6f9a6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z144_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<171;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c deleted file mode 100644 index 3f6be2d8b3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z14_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<17;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c deleted file mode 100644 index 18433a0bb9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z15_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<18;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c deleted file mode 100644 index a707e979a3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z160_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<190;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c deleted file mode 100644 index 2db176ef99..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z16_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<19;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c deleted file mode 100644 index 0a4986e855..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z176_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<209;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c deleted file mode 100644 index 73ec5b7694..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z18_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<22;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c deleted file mode 100644 index 57c3a14331..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z192_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<228;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c deleted file mode 100644 index df3810a159..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z208_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<247;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c deleted file mode 100644 index ccabb48171..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z20_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<24;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c deleted file mode 100644 index 3863cc0b78..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z224_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<266;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c deleted file mode 100644 index e63c5fd552..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z22_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<27;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c deleted file mode 100644 index 6502335168..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z240_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<285;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c deleted file mode 100644 index bf727cb7da..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z24_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<29;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c deleted file mode 100644 index 21e3b405ee..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z256_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<304;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c deleted file mode 100644 index aada1582fb..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z26_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<31;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c deleted file mode 100644 index dbd644f48b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z288_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<342;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c deleted file mode 100644 index 465742e608..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z28_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<34;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c deleted file mode 100644 index e93cdfcf11..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z2_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<3;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c deleted file mode 100644 index 8d060b7c79..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z30_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<36;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c deleted file mode 100644 index 92268f3d53..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z320_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<380;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c deleted file mode 100644 index bfc4c0b52b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z32_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<38;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c deleted file mode 100644 index 2c6cc7b6b0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z352_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<418;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c deleted file mode 100644 index ed4a0100a9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z36_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<43;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c deleted file mode 100644 index a5c0f02b5b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<456;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c deleted file mode 100644 index 43e8bcd7de..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z3_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<4;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c deleted file mode 100644 index 24438b13cd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z40_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<48;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c deleted file mode 100644 index 0f324af960..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z44_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<53;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c deleted file mode 100644 index 9e88e7b0ed..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z48_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<57;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c deleted file mode 100644 index 12597e8f2f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z4_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<5;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c deleted file mode 100644 index 6b6566f36e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z52_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<62;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c deleted file mode 100644 index b1cce64577..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z56_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<67;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c deleted file mode 100644 index 5991558809..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z5_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<6;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c deleted file mode 100644 index 9c83e7d431..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z60_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<72;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c deleted file mode 100644 index 9dd53e1642..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z64_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<76;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c deleted file mode 100644 index b7e769a154..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z6_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<8;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c deleted file mode 100644 index 749b21d603..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z72_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<86;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c deleted file mode 100644 index ba4a638274..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z7_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<9;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c deleted file mode 100644 index b60d9c6ad4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z80_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<95;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c deleted file mode 100644 index 607d88744c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z88_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<105;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c deleted file mode 100644 index 0aa77ce254..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z8_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<10;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c deleted file mode 100644 index 4239544706..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z96_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<114;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c deleted file mode 100644 index 5c085b51c2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z9_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<11;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z104_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c similarity index 97% rename from openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z104_R13_AVX2.c rename to openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c index ee97fc62bf..aa171558fd 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z104_R13_AVX2.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c @@ -1,11 +1,15 @@ #include #include -void nrLDPC_cnProc_BG1_Z104_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG1_R13_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { + uint32_t M; + int8_t* cnProcBuf = p_procBuf->cnProcBuf; + int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; + M = (1*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i #include -void nrLDPC_cnProc_BG1_Z12_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG1_R13_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { + uint32_t M; + M = (1*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i #include -void nrLDPC_cnProc_BG1_Z10_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG1_R23_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { + uint32_t M; + int8_t* cnProcBuf = p_procBuf->cnProcBuf; + int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; + M = (1*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i #include -void nrLDPC_cnProc_BG1_Z2_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG1_R23_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { + uint32_t M; + M = (1*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i #include -void nrLDPC_cnProc_BG1_Z13_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG1_R89_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { + uint32_t M; + int8_t* cnProcBuf = p_procBuf->cnProcBuf; + int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; + M = (1*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i +#include +static inline void nrLDPC_cnProc_BG1_R89_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { +//Process group with 3 BNs + __m256i ymm0, min, sgn,ones,maxLLR; + ones = _mm256_set1_epi8((char)1); + maxLLR = _mm256_set1_epi8((char)127); + uint32_t M; + M = (1*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i -#include -void nrLDPC_cnProc_BG1_Z112_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z11_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z11_R13_AVX2.c deleted file mode 100644 index c923dfd293..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z11_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z11_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z120_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z120_R13_AVX2.c deleted file mode 100644 index f3c06abb67..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z120_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z120_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z128_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z128_R13_AVX2.c deleted file mode 100644 index 3388c1c95b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z128_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z128_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z144_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z144_R13_AVX2.c deleted file mode 100644 index 8cb5cade6e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z144_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z144_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z14_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z14_R13_AVX2.c deleted file mode 100644 index 44ee09d03d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z14_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z14_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z15_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z15_R13_AVX2.c deleted file mode 100644 index ffc71426b7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z15_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z15_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z160_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z160_R13_AVX2.c deleted file mode 100644 index a5248e2c11..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z160_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z160_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z16_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z16_R13_AVX2.c deleted file mode 100644 index 5067a4d568..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z16_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z16_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z176_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z176_R13_AVX2.c deleted file mode 100644 index ae640b1fd4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z176_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z176_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z18_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z18_R13_AVX2.c deleted file mode 100644 index 56cd28a9ef..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z18_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z18_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z192_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z192_R13_AVX2.c deleted file mode 100644 index e298ade2d5..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z192_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z192_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z208_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z208_R13_AVX2.c deleted file mode 100644 index c2f0497934..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z208_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z208_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<7;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<117;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<117;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<117;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<117;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<117;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<52;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<52;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<52;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<52;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<52;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<52;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z20_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z20_R13_AVX2.c deleted file mode 100644 index 75567e0c0b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z20_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z20_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z224_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z224_R13_AVX2.c deleted file mode 100644 index 49fd55bf02..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z224_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z224_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<7;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<126;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<126;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<126;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<126;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<126;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<56;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<56;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<56;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<56;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<56;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<56;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z22_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z22_R13_AVX2.c deleted file mode 100644 index a2a5cde850..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z22_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z22_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z240_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z240_R13_AVX2.c deleted file mode 100644 index 1b3cc7c6ad..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z240_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z240_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<8;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<135;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<135;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<135;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<135;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<135;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z24_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z24_R13_AVX2.c deleted file mode 100644 index f719ff19e2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z24_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z24_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z256_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z256_R13_AVX2.c deleted file mode 100644 index 230f9e07a3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z256_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z256_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<8;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<144;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<144;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<144;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<144;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<144;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<64;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<64;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<64;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<64;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<64;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<64;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z26_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z26_R13_AVX2.c deleted file mode 100644 index 94a7f0c389..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z26_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z26_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z288_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z288_R13_AVX2.c deleted file mode 100644 index 91066132a4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z288_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z288_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<9;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<162;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<162;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<162;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<162;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<162;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z28_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z28_R13_AVX2.c deleted file mode 100644 index 568c0096f7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z28_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z28_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z30_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z30_R13_AVX2.c deleted file mode 100644 index 465d36db41..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z30_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z30_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z320_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z320_R13_AVX2.c deleted file mode 100644 index 99f8891c54..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z320_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z320_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<10;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<180;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<180;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<180;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<180;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<180;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z32_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z32_R13_AVX2.c deleted file mode 100644 index 5baaadd512..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z32_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z32_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z352_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z352_R13_AVX2.c deleted file mode 100644 index fb4a93a98e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z352_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z352_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<11;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<198;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<198;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<198;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<198;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<198;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<88;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<88;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<88;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<88;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<88;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<88;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z36_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z36_R13_AVX2.c deleted file mode 100644 index be11649a57..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z36_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z36_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z384_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z384_R13_AVX2.c deleted file mode 100644 index cb67f5031d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z384_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z384_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<12;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<216;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<216;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<216;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<216;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<216;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<96;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<96;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<96;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<96;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<96;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<96;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z3_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z3_R13_AVX2.c deleted file mode 100644 index a383a80b03..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z3_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z3_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z40_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z40_R13_AVX2.c deleted file mode 100644 index ce37578a66..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z40_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z40_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z44_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z44_R13_AVX2.c deleted file mode 100644 index 4d7e77ed7b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z44_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z44_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z48_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z48_R13_AVX2.c deleted file mode 100644 index 6ed9fbb101..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z48_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z48_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z4_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z4_R13_AVX2.c deleted file mode 100644 index 863ff40747..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z4_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z4_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z52_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z52_R13_AVX2.c deleted file mode 100644 index dbd111868a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z52_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z52_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z56_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z56_R13_AVX2.c deleted file mode 100644 index 5469b77812..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z56_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z56_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z5_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z5_R13_AVX2.c deleted file mode 100644 index 493706b9ad..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z5_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z5_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z60_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z60_R13_AVX2.c deleted file mode 100644 index b504267826..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z60_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z60_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z64_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z64_R13_AVX2.c deleted file mode 100644 index 8bfb98c9ba..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z64_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z64_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z6_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z6_R13_AVX2.c deleted file mode 100644 index 7156db357e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z6_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z6_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z72_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z72_R13_AVX2.c deleted file mode 100644 index f93ae981f8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z72_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z72_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z7_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z7_R13_AVX2.c deleted file mode 100644 index fe2b974170..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z7_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z7_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z80_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z80_R13_AVX2.c deleted file mode 100644 index 0d8db50071..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z80_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z80_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z88_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z88_R13_AVX2.c deleted file mode 100644 index 7c7ce39c1c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z88_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z88_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z8_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z8_R13_AVX2.c deleted file mode 100644 index 8cbc7c3012..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z8_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z8_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z96_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z96_R13_AVX2.c deleted file mode 100644 index cae1179897..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z96_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z96_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z9_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z9_R13_AVX2.c deleted file mode 100644 index f31cf8b56a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z9_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z9_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z3_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.c similarity index 90% rename from openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z3_R15_AVX2.c rename to openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.c index 220cff34ed..50c3bc0cb2 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z3_R15_AVX2.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.c @@ -1,66 +1,16 @@ #include #include -void nrLDPC_cnProc_BG2_Z3_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG2_R13_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } + uint32_t M; + int8_t* cnProcBuf = p_procBuf->cnProcBuf; + int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; //Process group with 4 BNs - for (int i=0;i<2;i++) { + M = (8*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i #include -void nrLDPC_cnProc_BG2_Z4_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG2_R13_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } + uint32_t M; //Process group with 4 BNs - for (int i=0;i<3;i++) { + M = (8*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i #include -void nrLDPC_cnProc_BG2_Z104_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG2_R15_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<20;i+=2) { + uint32_t M; + int8_t* cnProcBuf = p_procBuf->cnProcBuf; + int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; + M = (6*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i #include -void nrLDPC_cnProc_BG2_Z2_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG2_R15_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { + uint32_t M; + M = (6*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i #include -void nrLDPC_cnProc_BG2_Z5_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG2_R23_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } + uint32_t M; + int8_t* cnProcBuf = p_procBuf->cnProcBuf; + int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; //Process group with 4 BNs - for (int i=0;i<4;i++) { + M = (1*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i +#include +static inline void nrLDPC_cnProc_BG2_R23_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { +//Process group with 3 BNs + __m256i ymm0, min, sgn,ones,maxLLR; + ones = _mm256_set1_epi8((char)1); + maxLLR = _mm256_set1_epi8((char)127); + uint32_t M; +//Process group with 4 BNs + M = (1*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i -#include -void nrLDPC_cnProc_BG2_Z10_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z112_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z112_R15_AVX2.c deleted file mode 100644 index 7ce92630e9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z112_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z112_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<21;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<70;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<70;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<70;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<70;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z11_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z11_R15_AVX2.c deleted file mode 100644 index c7d863559a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z11_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z11_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z120_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z120_R15_AVX2.c deleted file mode 100644 index 2dfd13bfac..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z120_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z120_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<23;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<75;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<75;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<75;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<75;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z128_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z128_R15_AVX2.c deleted file mode 100644 index 055e83b970..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z128_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z128_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<24;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z12_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z12_R15_AVX2.c deleted file mode 100644 index 9a78d5df60..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z12_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z12_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z13_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z13_R15_AVX2.c deleted file mode 100644 index 59c963a8fc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z13_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z13_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z144_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z144_R15_AVX2.c deleted file mode 100644 index 66b3733d42..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z144_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z144_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<27;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z14_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z14_R15_AVX2.c deleted file mode 100644 index 94c1e7cd3c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z14_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z14_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z15_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z15_R15_AVX2.c deleted file mode 100644 index e50fd26998..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z15_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z15_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z160_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z160_R15_AVX2.c deleted file mode 100644 index e6472f526c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z160_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z160_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<30;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<100;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<100;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<100;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<100;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z16_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z16_R15_AVX2.c deleted file mode 100644 index 3d05fd089b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z16_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z16_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z176_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z176_R15_AVX2.c deleted file mode 100644 index 0f14028b6d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z176_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z176_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<33;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<110;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<110;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<110;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<110;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z18_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z18_R15_AVX2.c deleted file mode 100644 index 8e44a92165..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z18_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z18_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z192_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z192_R15_AVX2.c deleted file mode 100644 index b56aabf024..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z192_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z192_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<36;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<120;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<120;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<120;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<120;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z208_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z208_R15_AVX2.c deleted file mode 100644 index 0a0ff67520..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z208_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z208_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<39;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<39;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<39;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<130;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<130;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<130;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<130;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<59;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<59;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<59;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<59;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<59;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z20_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z20_R15_AVX2.c deleted file mode 100644 index 59c3246689..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z20_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z20_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z224_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z224_R15_AVX2.c deleted file mode 100644 index 13f778a24c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z224_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z224_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<42;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<42;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<42;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<140;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<140;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<140;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<140;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z22_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z22_R15_AVX2.c deleted file mode 100644 index d6ea777549..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z22_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z22_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z240_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z240_R15_AVX2.c deleted file mode 100644 index e73e53e2c1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z240_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z240_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<45;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<150;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<150;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<150;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<150;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z24_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z24_R15_AVX2.c deleted file mode 100644 index 94456093a1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z24_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z24_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z256_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z256_R15_AVX2.c deleted file mode 100644 index ca030208df..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z256_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z256_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<48;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<160;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<160;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<160;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<160;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z26_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z26_R15_AVX2.c deleted file mode 100644 index 204fecce65..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z26_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z26_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z288_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z288_R15_AVX2.c deleted file mode 100644 index ddcdfe2377..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z288_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z288_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<54;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<180;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<180;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<180;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<180;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z28_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z28_R15_AVX2.c deleted file mode 100644 index 25581f51f9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z28_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z28_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z30_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z30_R15_AVX2.c deleted file mode 100644 index 4270e115bf..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z30_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z30_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z320_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z320_R15_AVX2.c deleted file mode 100644 index b86af8cc26..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z320_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z320_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<60;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<200;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<200;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<200;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<200;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z32_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z32_R15_AVX2.c deleted file mode 100644 index b2fbd829b6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z32_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z32_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z352_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z352_R15_AVX2.c deleted file mode 100644 index e2d692f5a6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z352_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z352_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<66;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<66;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<66;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<220;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<220;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<220;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<220;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z36_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z36_R15_AVX2.c deleted file mode 100644 index 8d272ae764..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z36_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z36_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<7;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z384_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z384_R15_AVX2.c deleted file mode 100644 index 0130022c02..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z384_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z384_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<72;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<240;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<240;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<240;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<240;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z40_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z40_R15_AVX2.c deleted file mode 100644 index c5373ed43e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z40_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z40_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<8;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z44_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z44_R15_AVX2.c deleted file mode 100644 index f9f1dd05ef..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z44_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z44_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<9;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z48_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z48_R15_AVX2.c deleted file mode 100644 index afc61d740d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z48_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z48_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<9;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z52_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z52_R15_AVX2.c deleted file mode 100644 index 55039f44e9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z52_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z52_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<10;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z56_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z56_R15_AVX2.c deleted file mode 100644 index 9375f4e297..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z56_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z56_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<11;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z60_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z60_R15_AVX2.c deleted file mode 100644 index 4f2a9b8190..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z60_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z60_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<12;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z64_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z64_R15_AVX2.c deleted file mode 100644 index 8d75ac2f70..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z64_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z64_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<12;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z6_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z6_R15_AVX2.c deleted file mode 100644 index ce0932e069..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z6_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z6_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z72_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z72_R15_AVX2.c deleted file mode 100644 index d343dedbef..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z72_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z72_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<14;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z7_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z7_R15_AVX2.c deleted file mode 100644 index dfd5f3a395..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z7_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z7_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z80_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z80_R15_AVX2.c deleted file mode 100644 index 0b7de6d364..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z80_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z80_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<15;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z88_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z88_R15_AVX2.c deleted file mode 100644 index 236d3af15f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z88_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z88_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<17;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z8_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z8_R15_AVX2.c deleted file mode 100644 index ddc6a7acb0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z8_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z8_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z96_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z96_R15_AVX2.c deleted file mode 100644 index 3ee2a5135a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z96_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z96_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<18;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z9_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z9_R15_AVX2.c deleted file mode 100644 index f076359378..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z9_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z9_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z11_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h similarity index 89% rename from openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z11_R13_AVX512.c rename to openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h index 2aeb54ea5e..b53bff6d41 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z11_R13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h @@ -1,63 +1,48 @@ -#include -#include #define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z11_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG1_R13_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { + uint32_t M, i; + __m512i zmm0, min, sgn,zeros,maxLLR, ones; + zeros = _mm512_setzero_si512(); + maxLLR = _mm512_set1_epi8((char)127); + ones = _mm512_set1_epi8((char)1); //Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); + M = (1*Z + 63)>>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i -#include #define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z2_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG1_R23_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { + uint32_t M, i; + __m512i zmm0, min, sgn,zeros,maxLLR, ones; + zeros = _mm512_setzero_si512(); + maxLLR = _mm512_set1_epi8((char)127); + ones = _mm512_set1_epi8((char)1); //Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); + M = (1*Z + 63)>>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i -#include #define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z2_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs +static inline void nrLDPC_cnProc_BG2_R13_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { + uint32_t M; __m512i zmm0, min, sgn,zeros,maxLLR; zeros = _mm512_setzero_si512(); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } +//Process group with 3 BNs //Process group with 4 BNs - for (int i=0;i<1;i++) { + M = (8*Z + 63)>>6; + for (int i=0;i>6; + for (int i=0;i>6; + for (int i=0;i>6; + for (int i=0;i>6; + for (int i=0;i -#include #define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z104_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs +static inline void nrLDPC_cnProc_BG2_R15_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { + uint32_t M; __m512i zmm0, min, sgn,zeros,maxLLR; zeros = _mm512_setzero_si512(); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<10;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); +//Process group with 3 BNs + M = (20*Z + 63)>>6; + for (int i=0;i>6; + for (int i=0;i>6; + for (int i=0;i>6; + for (int i=0;i>6; + for (int i=0;i>6; + for (int i=0;i -#include #define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z3_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs +static inline void nrLDPC_cnProc_BG2_R23_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { + uint32_t M; __m512i zmm0, min, sgn,zeros,maxLLR; zeros = _mm512_setzero_si512(); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } +//Process group with 3 BNs //Process group with 4 BNs - for (int i=0;i<1;i++) { + M = (1*Z + 63)>>6; + for (int i=0;i>6; + for (int i=0;i>6; + for (int i=0;i>6; + for (int i=0;i -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z104_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z10_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z10_R13_AVX512.c deleted file mode 100644 index 931aabc9e6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z10_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z10_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z112_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z112_R13_AVX512.c deleted file mode 100644 index 58776ecedc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z112_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z112_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z120_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z120_R13_AVX512.c deleted file mode 100644 index f18f5526bd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z120_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z120_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z128_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z128_R13_AVX512.c deleted file mode 100644 index a9aa7d52fc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z128_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z128_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z12_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z12_R13_AVX512.c deleted file mode 100644 index 799c26e91e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z12_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z12_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z13_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z13_R13_AVX512.c deleted file mode 100644 index 394b57a483..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z13_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z13_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z144_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z144_R13_AVX512.c deleted file mode 100644 index 1ec0abd30e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z144_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z144_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<12;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z14_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z14_R13_AVX512.c deleted file mode 100644 index 0bf5c532bc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z14_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z14_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z15_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z15_R13_AVX512.c deleted file mode 100644 index 21cc303172..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z15_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z15_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z160_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z160_R13_AVX512.c deleted file mode 100644 index ace2e27399..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z160_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z160_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<13;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z16_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z16_R13_AVX512.c deleted file mode 100644 index 897bf3b12a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z16_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z16_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z176_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z176_R13_AVX512.c deleted file mode 100644 index bafb9cd106..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z176_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z176_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<14;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z18_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z18_R13_AVX512.c deleted file mode 100644 index dd4c008f1d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z18_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z18_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z192_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z192_R13_AVX512.c deleted file mode 100644 index f9c4deca35..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z192_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z192_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<15;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z208_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z208_R13_AVX512.c deleted file mode 100644 index 8dd282f1f6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z208_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z208_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<59;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<59;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<59;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<59;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<59;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<26;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<26;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<26;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<26;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<26;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<26;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<17;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z20_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z20_R13_AVX512.c deleted file mode 100644 index 65ba354529..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z20_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z20_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z224_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z224_R13_AVX512.c deleted file mode 100644 index 76e8d7916d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z224_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z224_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<63;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<63;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<63;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<63;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<63;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<18;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z22_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z22_R13_AVX512.c deleted file mode 100644 index c619f1fa92..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z22_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z22_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z240_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z240_R13_AVX512.c deleted file mode 100644 index 6f6334f753..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z240_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z240_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<19;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<68;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<68;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<68;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<68;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<68;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<19;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z24_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z24_R13_AVX512.c deleted file mode 100644 index 94459877a7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z24_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z24_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z256_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z256_R13_AVX512.c deleted file mode 100644 index 7f44b51d52..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z256_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z256_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<72;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<72;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<72;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<72;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<72;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<20;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z26_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z26_R13_AVX512.c deleted file mode 100644 index 78403121b7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z26_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z26_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z288_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z288_R13_AVX512.c deleted file mode 100644 index eb69908998..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z288_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z288_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<81;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<81;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<81;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<81;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<81;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<23;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z28_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z28_R13_AVX512.c deleted file mode 100644 index 6d125fb6bc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z28_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z28_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z30_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z30_R13_AVX512.c deleted file mode 100644 index 2ff2574d9a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z30_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z30_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z320_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z320_R13_AVX512.c deleted file mode 100644 index 19f323d1f8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z320_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z320_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<90;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<90;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<90;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<90;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<90;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<25;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z32_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z32_R13_AVX512.c deleted file mode 100644 index aee2cc1b0e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z32_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z32_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z352_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z352_R13_AVX512.c deleted file mode 100644 index 27d8374f1d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z352_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z352_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<99;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<99;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<99;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<99;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<99;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<44;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<44;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<44;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<44;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<44;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<44;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<28;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z36_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z36_R13_AVX512.c deleted file mode 100644 index 2cbae94587..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z36_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z36_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z384_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z384_R13_AVX512.c deleted file mode 100644 index be72a37443..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z384_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z384_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<108;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<108;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<108;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<108;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<108;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<48;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<48;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<48;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<48;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<48;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<48;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<30;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z3_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z3_R13_AVX512.c deleted file mode 100644 index bcfba0de03..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z3_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z3_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z40_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z40_R13_AVX512.c deleted file mode 100644 index 7e022c9691..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z40_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z40_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z44_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z44_R13_AVX512.c deleted file mode 100644 index 11908574d7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z44_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z44_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z48_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z48_R13_AVX512.c deleted file mode 100644 index dcf9d48363..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z48_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z48_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z4_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z4_R13_AVX512.c deleted file mode 100644 index 4fee7d3af5..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z4_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z4_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z52_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z52_R13_AVX512.c deleted file mode 100644 index 5d0a8c9862..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z52_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z52_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z56_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z56_R13_AVX512.c deleted file mode 100644 index 0c0a6bc09c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z56_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z56_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z5_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z5_R13_AVX512.c deleted file mode 100644 index 0eaf965c08..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z5_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z5_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z60_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z60_R13_AVX512.c deleted file mode 100644 index 0dfb581d3a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z60_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z60_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z64_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z64_R13_AVX512.c deleted file mode 100644 index e4cfc593d2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z64_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z64_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z6_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z6_R13_AVX512.c deleted file mode 100644 index d1e3aea863..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z6_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z6_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z72_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z72_R13_AVX512.c deleted file mode 100644 index 7b948004e8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z72_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z72_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<6;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z7_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z7_R13_AVX512.c deleted file mode 100644 index 9685d28413..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z7_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z7_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z80_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z80_R13_AVX512.c deleted file mode 100644 index cc13115c68..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z80_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z80_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z88_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z88_R13_AVX512.c deleted file mode 100644 index 9010ccd0b8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z88_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z88_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z8_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z8_R13_AVX512.c deleted file mode 100644 index 097b273aa6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z8_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z8_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z96_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z96_R13_AVX512.c deleted file mode 100644 index 029b3cd7d5..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z96_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z96_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<8;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z9_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z9_R13_AVX512.c deleted file mode 100644 index b8526c1fa0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z9_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z9_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z10_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z10_R15_AVX512.c deleted file mode 100644 index 13bfc07dc8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z10_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z10_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z112_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z112_R15_AVX512.c deleted file mode 100644 index 2bfea51617..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z112_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z112_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<11;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<35;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<35;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<35;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<35;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z11_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z11_R15_AVX512.c deleted file mode 100644 index 47a9347527..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z11_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z11_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z120_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z120_R15_AVX512.c deleted file mode 100644 index 8e081006db..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z120_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z120_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<12;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<38;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<38;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<38;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<38;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z128_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z128_R15_AVX512.c deleted file mode 100644 index 212eeeb99a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z128_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z128_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<12;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z12_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z12_R15_AVX512.c deleted file mode 100644 index 5cc9987065..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z12_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z12_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z13_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z13_R15_AVX512.c deleted file mode 100644 index 1a768656bb..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z13_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z13_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z144_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z144_R15_AVX512.c deleted file mode 100644 index 424d013afa..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z144_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z144_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<14;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z14_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z14_R15_AVX512.c deleted file mode 100644 index 7ac9608117..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z14_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z14_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z15_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z15_R15_AVX512.c deleted file mode 100644 index 46784bdd5a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z15_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z15_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z160_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z160_R15_AVX512.c deleted file mode 100644 index 4a456e452d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z160_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z160_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<15;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z16_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z16_R15_AVX512.c deleted file mode 100644 index cafbcf0ec3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z16_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z16_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z176_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z176_R15_AVX512.c deleted file mode 100644 index c7e9c3b9e4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z176_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z176_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<17;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<55;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<55;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<55;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<55;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z18_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z18_R15_AVX512.c deleted file mode 100644 index 7a70ae0856..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z18_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z18_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z192_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z192_R15_AVX512.c deleted file mode 100644 index 772edee176..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z192_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z192_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<18;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<60;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<60;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<60;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<60;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z208_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z208_R15_AVX512.c deleted file mode 100644 index 0d1d45a2da..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z208_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z208_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<20;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<65;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<65;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<65;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<65;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z20_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z20_R15_AVX512.c deleted file mode 100644 index 808d1d557e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z20_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z20_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z224_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z224_R15_AVX512.c deleted file mode 100644 index 5040a8055c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z224_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z224_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<21;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<70;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<70;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<70;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<70;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z22_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z22_R15_AVX512.c deleted file mode 100644 index d6bc032b37..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z22_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z22_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z240_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z240_R15_AVX512.c deleted file mode 100644 index b6aa90ffaa..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z240_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z240_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<23;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<75;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<75;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<75;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<75;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z24_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z24_R15_AVX512.c deleted file mode 100644 index 200e410ddd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z24_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z24_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z256_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z256_R15_AVX512.c deleted file mode 100644 index baba4c6496..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z256_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z256_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<24;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<80;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<80;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<80;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<80;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z26_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z26_R15_AVX512.c deleted file mode 100644 index 3f7f3e3ca1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z26_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z26_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z288_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z288_R15_AVX512.c deleted file mode 100644 index be696e744c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z288_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z288_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<27;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<90;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<90;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<90;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<90;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z28_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z28_R15_AVX512.c deleted file mode 100644 index fe487719cf..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z28_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z28_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z30_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z30_R15_AVX512.c deleted file mode 100644 index aae2a813c7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z30_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z30_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z320_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z320_R15_AVX512.c deleted file mode 100644 index 2ba9f47ab9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z320_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z320_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<30;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<100;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<100;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<100;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<100;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z32_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z32_R15_AVX512.c deleted file mode 100644 index ecc660ddf6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z32_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z32_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z352_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z352_R15_AVX512.c deleted file mode 100644 index 7cb4a18389..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z352_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z352_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<33;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<33;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<33;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<110;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<110;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<110;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<110;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z36_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z36_R15_AVX512.c deleted file mode 100644 index 33ab4c8a85..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z36_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z36_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z384_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z384_R15_AVX512.c deleted file mode 100644 index 38a3c6deec..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z384_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z384_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<36;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<120;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<120;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<120;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<120;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z40_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z40_R15_AVX512.c deleted file mode 100644 index 9603e1669a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z40_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z40_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z44_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z44_R15_AVX512.c deleted file mode 100644 index f930d6ae14..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z44_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z44_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z48_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z48_R15_AVX512.c deleted file mode 100644 index 541fd39183..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z48_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z48_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z4_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z4_R15_AVX512.c deleted file mode 100644 index 1244fbb05c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z4_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z4_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z52_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z52_R15_AVX512.c deleted file mode 100644 index d974028049..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z52_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z52_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z56_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z56_R15_AVX512.c deleted file mode 100644 index fe905cfdc4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z56_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z56_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z5_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z5_R15_AVX512.c deleted file mode 100644 index 627309b2ba..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z5_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z5_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z60_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z60_R15_AVX512.c deleted file mode 100644 index 332175bebe..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z60_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z60_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<19;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z64_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z64_R15_AVX512.c deleted file mode 100644 index d44251a81e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z64_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z64_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z6_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z6_R15_AVX512.c deleted file mode 100644 index 429dedff76..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z6_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z6_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z72_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z72_R15_AVX512.c deleted file mode 100644 index af7bd6082d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z72_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z72_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<7;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z7_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z7_R15_AVX512.c deleted file mode 100644 index 9e060eef9b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z7_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z7_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z80_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z80_R15_AVX512.c deleted file mode 100644 index 9191e45570..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z80_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z80_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<8;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z88_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z88_R15_AVX512.c deleted file mode 100644 index c8cd9df6af..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z88_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z88_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<9;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z8_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z8_R15_AVX512.c deleted file mode 100644 index c8a4c790d1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z8_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z8_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z96_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z96_R15_AVX512.c deleted file mode 100644 index 1a2b478180..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z96_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z96_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<9;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z9_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z9_R15_AVX512.c deleted file mode 100644 index b3e2eb87ec..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z9_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z9_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -}